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

Photo of author

By etechblogcz

Častým dotazem v souvislosti s Dockerem je, v čem se liší od virtuálních strojů (VM).

V oblasti cloudové infrastruktury představuje virtuální stroj standard díky mnoha svým výhodám. Nicméně, existuje alternativa, která je lehčí, úspornější a snadněji škálovatelná. A to je právě Docker.

Docker je technologie založená na kontejnerech, která usnadňuje vývoj distribuovaných aplikací. V tomto článku se zaměříme na rozdíly mezi virtuálními stroji a kontejnery Docker.

Co je to virtuální stroj?

Virtuální stroj je systém, který se chová jako samostatný počítač.

Jednoduše řečeno, umožňuje simulovat provoz několika samostatných počítačů na jediném fyzickém hardwaru. Každý virtuální stroj vyžaduje vlastní operační systém a dochází k virtualizaci hardwaru.

Co je Docker?

Docker je nástroj, který zjednodušuje vytváření, nasazování a spouštění aplikací pomocí kontejnerů. Aplikace a její závislosti jsou uzavřeny do kontejneru.

Osvojení si Dockeru je snadné!

Srovnání Dockeru a VM

Nyní si probereme klíčové rozdíly mezi kontejnery Docker a virtuálními stroji. Hlavními rozdíly jsou podpora operačního systému, zabezpečení, přenositelnost a výkon.

Pojďme si jednotlivé aspekty detailněji rozebrat.

Podpora operačního systému

Z hlediska podpory operačního systému se virtuální stroje a kontejnery Docker výrazně liší. Jak můžete vidět na ilustračním obrázku, každý virtuální stroj má svůj vlastní hostující operační systém nad hostitelským operačním systémem, což zvyšuje jejich náročnost. Naproti tomu kontejnery Docker sdílejí hostitelský operační systém, díky čemuž jsou odlehčené.

Sdílení hostitelského operačního systému mezi kontejnery zjednodušuje jejich správu a umožňuje jejich spuštění během několika sekund. Režie spojená se správou kontejnerů je tedy výrazně nižší než u virtuálních strojů.

Kontejnery Docker jsou ideální pro situace, kdy potřebujete spouštět více aplikací na jednom jádru operačního systému. Pokud však vaše aplikace nebo servery vyžadují spuštění na různých verzích operačních systémů, je potřeba využít virtuální stroje.

Bezpečnost

Virtuální stroje nesdílejí operační systém a hostitelské jádro je silně izolováno. Díky tomu jsou bezpečnější v porovnání s kontejnery. Kontejnery mají naopak vyšší bezpečnostní rizika, protože sdílejí hostitelské jádro.

Vzhledem k tomu, že zdroje Dockeru jsou sdílené a nejsou odděleny jmennými prostory, útočník, který získá přístup k jednomu kontejneru, může potenciálně ohrozit všechny kontejnery v clusteru. U virtuálních strojů nedochází k přímému přístupu ke zdrojům a hypervizor omezuje využití zdrojů jednotlivými virtuálními stroji.

Přenositelnost

Kontejnery Docker jsou snadno přenosné, protože neobsahují samostatné operační systémy. Kontejner lze přenést na jiný operační systém a okamžitě spustit. Virtuální stroje mají naproti tomu samostatný operační systém, což ztěžuje jejich přenositelnost a z důvodu jejich velikosti trvá přenos virtuálního stroje déle.

Pro účely vývoje, kdy je potřeba vyvíjet a testovat aplikace na různých platformách, představují kontejnery Docker ideální volbu.

Výkon

Srovnávání výkonu virtuálních strojů a kontejnerů Docker není zcela spravedlivé, protože se používají pro různé účely. Nicméně odlehčená architektura Dockeru a jeho menší nároky na zdroje z něj dělají lepší volbu než virtuální stroje. Kontejnery se spouští výrazně rychleji než virtuální stroje a využití zdrojů se liší v závislosti na aktuálním zatížení.

U kontejnerů není potřeba trvale přidělovat zdroje, na rozdíl od virtuálních strojů. Škálování a duplikace kontejnerů je také snadnější než u virtuálních strojů, protože do nich není potřeba instalovat operační systém.

Závěr

Zde je shrnutí rozdílů mezi virtuálními stroji a kontejnery Docker v tabulce:

Virtuální stroj Kontejner Docker
Izolace procesů Na úrovni hardwaru Na úrovni OS
Operační systém Každý VM má samostatný OS Každý kontejner může sdílet OS
Spouštění Řádově minuty Řádově sekundy
Velikost Několik GB Lehké (KB/MB)
Dostupnost Hotové VM je těžké najít Předpřipravené kontejnery jsou snadno dostupné
Přesun VM se mohou snadno přesunout na nového hostitele Kontejnery se spíše ničí a znovu vytvářejí, než aby se přesouvaly
Vytváření Trvá relativně déle Lze vytvořit během několika sekund
Využití zdrojů Vyšší využití zdrojů Nižší využití zdrojů

Líbil se vám článek? Podělte se o něj s ostatními!