Docker vs Virtual Machine (VM) – Pochopení rozdílů

Jednou z častých otázek o Dockeru je, jak se liší od VM (virtuální stroj).

Pokud jde o cloudovou infrastrukturu, virtuální stroj je standardem pro mnoho svých výhod. Co kdybyste však měli alternativu k virtuálnímu počítači, která by byla lehčí, ekonomičtější a škálovatelnější. To je přesně to, co Docker je.

Docker je technologie založená na kontejnerech, která vám umožňuje vyvíjet distribuované aplikace. V tomto blogovém příspěvku vysvětlím rozdíly mezi virtuálními stroji a kontejnery Docker.

Co je to virtuální stroj?

Virtuální stroj je systém, který funguje přesně jako počítač.

Jednoduše řečeno, umožňuje spouštět to, co se zdá být na mnoha samostatných počítačích na hardwaru, tedy jeden počítač. Každý virtuální stroj vyžaduje svůj základní operační systém a poté je hardware virtualizován.

Co je Docker?

Docker je nástroj, který používá kontejnery k mnohem jednoduššímu vytváření, nasazení a spouštění aplikací. Váže aplikaci a její závislosti uvnitř kontejneru.

  5 způsobů, jak vydělat více peněz v 'Stardew Valley'

Učící se Docker je lehké!

Docker vs. VM

Nyní vám řeknu významné rozdíly mezi kontejnery dockerů a virtuálními stroji. No, podstatné rozdíly jsou jejich podpora operačního systému, zabezpečení, přenositelnost a výkon.

Pojďme si tedy probrat každý z těchto termínů jeden po druhém.

Podpora operačního systému

Podpora operačního systému virtuálního počítače a kontejneru Docker je velmi odlišná. Z obrázku výše můžete vidět, že každý virtuální stroj má svůj hostující operační systém nad hostitelským operačním systémem, což činí virtuální stroje těžkými. Zatímco na druhé straně kontejnery Docker sdílejí hostitelský operační systém, a proto jsou lehké.

Sdílení hostitelského operačního systému mezi kontejnery je velmi zjednodušuje a pomáhá je spustit během několika sekund. Režie na správu kontejnerového systému je tedy ve srovnání s virtuálními stroji velmi nízká.

Ukotvitelné kontejnery jsou vhodné pro situace, kdy chcete spouštět více aplikací na jednom jádře operačního systému. Ale pokud máte aplikace nebo servery, které potřebují běžet na různých variantách operačního systému, pak jsou vyžadovány virtuální stroje.

Bezpečnostní

Virtuální počítač nesdílí operační systém a hostitelské jádro je silně izolované. Jsou tedy bezpečnější ve srovnání s kontejnery. Kontejner má mnoho bezpečnostních rizik a zranitelností, protože kontejnery sdílejí hostitelské jádro.

  Jak přepínat a přizpůsobovat zobrazení konverzace v aplikaci Outlook

Vzhledem k tomu, že prostředky dockeru jsou sdíleny a nejsou rozděleny do jmenného prostoru, může útočník využít všechny kontejnery v clusteru, pokud získá přístup byť jen k jednomu kontejneru. Ve virtuálním počítači nezískáte přímý přístup k prostředkům a hypervizor je zde, aby omezil využití prostředků ve virtuálním počítači.

Přenosnost

Docker kontejnery jsou snadno přenosné, protože nemají samostatné operační systémy. Kontejner lze přenést na jiný operační systém a lze jej spustit okamžitě. Na druhou stranu mají virtuální stroje samostatný operační systém, takže portování virtuálního stroje je ve srovnání s kontejnery obtížné a portování virtuálního stroje také zabere spoustu času kvůli jeho velikosti.

Pro účely vývoje, kdy aplikace musí být vyvíjeny a testovány na různých platformách, jsou ideální volbou kontejnery Docker.

Výkon

Porovnání virtuálních počítačů a kontejnerů Docker by nebylo fér, protože oba se používají k různým účelům. Ale odlehčená architektura dockeru a jeho funkce méně náročná na zdroje z něj dělá lepší volbu než virtuální stroj. V důsledku toho se kontejnery mohou spouštět velmi rychle ve srovnání s virtuálními stroji a využití prostředků se liší v závislosti na zatížení nebo provozu v nich.

  Jak změnit jazyk na Netflixu [All Devices]

Na rozdíl od případu virtuálních strojů zde není potřeba trvale přidělovat prostředky do kontejnerů. Škálování a duplikování kontejnerů je také snadný úkol ve srovnání s virtuálními stroji, protože do nich není potřeba instalovat operační systém.

Závěr

Zde je tabulka, která uzavírá rozdíly mezi virtuálním počítačem a kontejnerem Docker.

Virtuální stroj
Docker kontejner
Izolace procesů na úrovni hardwaru
Izolace procesů na úrovni OS
Každý VM má samostatný OS
Každý kontejner může sdílet OS
Boty za pár minut
Boty během několika sekund
Virtuální počítače mají několik GB
Kontejnery jsou lehké (KB/MB)
Hotové virtuální počítače je těžké najít
Předpřipravené dokovací kontejnery jsou snadno dostupné
Virtuální počítače se mohou snadno přesunout na nového hostitele
Kontejnery se spíše ničí a znovu vytvářejí, než aby se pohybovaly
Vytvoření VM trvá relativně déle
Kontejnery lze vytvořit během několika sekund
Více využití zdrojů
Menší využití zdrojů

Užili jste si čtení článku? Co takhle sdílet se světem?