Virtualizácia je vrstva medzi fyzickým hardvérom a aplikáciou, ktorá umožňuje oddeliť softvér od konkrétneho HW.
Umožňuje:
je vrstva oddeľujúca hosťovský (guest) operačný systém a fyzický hardvér.
+----------------+
| HOST HW and OS |
+----------------+
^
|
+----------------+
| Virtualization |
+----------------+
^
|
+------------------+
| GUEST OS and APP |
+------------------+
Hypervisor – virtualizačná vrstva je súčasťou hostiteľského OS.
+----------+
| HOST HW |--------+
+----------+ |
^ |
| |
+------------+ +---------+
| Hypervisor | | Host OS |
+------------+ +---------+
^
|
+------------------+
| GUEST OS and APP |
+------------------+
napr. VMware ESX, Xen, QEMU/KVM, Proxmox
Monitor je aplikácia v hostiteľskom OS
+------------+ +---------+
| HOST OS |- | Host HW |
+------------+ +---------+
^
|
+------------+
| VM Monitor |
+------------+
^
|
+------------------+
| GUEST OS and APP |
+------------------+
napr. VirtualBox
Virtuálny stroj vytvára úplne oddelené prostredie:
Virtuálne stroje sú:
Kontajnery vznikli ako ľahšia alternatíva k VM.
Vrstva hostiteľského OS, ktorá vytvára "klietku", v ktorej beží jeden alebo viac procesov.
+------------+ +---------+
| HOST OS |- | Host HW |
+------------+ +---------+
^
|
+---------------------+
| Container Manager |
+---------------------+
^
|
+-----+
| APP |
+-----+
Kontajner je bezstavový.
Stav aplikácie (dáta) musí byť uložený mimo kontajnera:
Docker je platforma pre:
Využíva virtualizáciu na úrovni OS
+----------+
| registry | Docker Hub
+----------+
|| (image)
+----------+
| daemon | Host machine
+----------+
|| (protocol)
+------------+
| cli client | Host or manager machine
+------------+
Príkaz docker v príkazovom riadku.
docker run nginx
Dáta musia byť oddelené od kontajnera pomocou:
Príklad:
docker run -v /data:/app/data nginx
Mapovanie portov:
docker run -p 8080:80 nginx
Typy sietí:
Je množina všetkých súborov potrebných na spoustenie kontajnera:
Obraz kontajnera sa nemení
Obraz kontajnera vytvoríme dopredu
skladá sa z vrstiev:
| VM | Docker |
|---|---|
| vlastný OS | zdieľaný kernel |
| pomalý štart | rýchly štart |
| vysoká réžia | nízka réžia |
riešenie: Docker Compose, Kubernetes.