Chceš si vyzkoušet Linux, ale nechceš si rozbít Windows. Nebo škola potřebuje 20 serverů, ale nemá místo na 20 skříní. Řešením je virtualizace: na jednom fyzickém počítači běží několik „počítačů“ jako programy.
Virtuální stroje a kontejnery jsou dnes základ datových center i cloudu. A pro tebe skvělé hřiště: pokazit tu nemůžeš skoro nic.
| Typ | Jak běží | Příklady | Použití |
|---|---|---|---|
| typ 1 (bare-metal) | přímo na hardwaru, bez dalšího OS pod sebou | VMware ESXi, Microsoft Hyper-V, KVM (Proxmox VE) | servery, datová centra |
| typ 2 (hostovaný) | jako program v běžném OS | Oracle VirtualBox, VMware Workstation | výuka, testování na PC |
Aby virtualizace běžela rychle, musí ji umět procesor: Intel VT-x nebo AMD-V. Zapíná se v nastavení UEFI.
docker run -d -p 8080:80 nginxdocker run -d -p 8080:80 nginx?Proto kontejner startuje za vteřinu a je malý, ale linuxový kontejner nespustíš přímo na jádru Windows (Docker Desktop k tomu používá skrytý linuxový VM).
Firma provozuje e-shop, databázi a poštu. Správce se rozhoduje: dát každou službu na vlastní server, do virtuálního stroje, nebo do kontejneru? Každá možnost má jiné náklady, bezpečnost i rychlost nasazení. Porovnáme je v přehledu.
| Fyzický server | Virtuální stroj | Kontejner | |
|---|---|---|---|
| vlastní jádro OS | ano | ano | ne, sdílí hostitele |
| start | minuty | desítky sekund až minuty | sekundy |
| velikost | – | GB | MB |
| oddělení (izolace) | nejlepší | velmi dobré | slabší |
| jiný OS než hostitel | – | ano (Windows vedle Linuxu) | jen se stejným jádrem |
| Příkaz | Co dělá |
|---|---|
docker pull nginx | stáhne obraz |
docker run -d --name web -p 8080:80 nginx | spustí kontejner |
docker ps | vypíše běžící kontejnery |
docker stop web | zastaví kontejner |
docker images | vypíše stažené obrazy |
Obraz se popisuje souborem Dockerfile: z jakého základu vychází, co se do něj nakopíruje a co se spustí.
Snímek leží na stejném úložišti jako VM. Když selže disk hostitele, zmizí VM i snímky. Dlouho držené snímky navíc rostou a zpomalují VM.