Kontejnery a image
Kontejnery a image
Kontejner vs. virtuální stroj
graph TB
subgraph VM
H1[Hardware] --> HV[Hypervizor]
HV --> G1[Guest OS + aplikace]
HV --> G2[Guest OS + aplikace]
end
subgraph Kontejnery
H2[Hardware] --> OS[Jádro hostitele]
OS --> CR[Container runtime]
CR --> C1[Aplikace]
CR --> C2[Aplikace]
end
Kontejner je proces nad jádrem hostitele, izolovaný namespacy a omezený cgroupami. Žádný hostovaný OS, takže start trvá milisekundy.
Image
Read-only šablona složená z vrstev; každá instrukce v Dockerfile přidá jednu. Vrstvy se sdílejí a cachují. Běžící kontejner přidá navrch tenkou zapisovatelnou vrstvu, která zmizí spolu s kontejnerem – proto data patří na volume.
graph BT
L1[základní vrstvy nginx:1.27] --> L3[COPY obsah webu]
L3 --> RW[zapisovatelná vrstva kontejneru]
Sítě – čtyři režimy
| Režim | Použití |
|---|---|
bridge | výchozí; privátní síť na hostiteli, publikované porty přes NAT |
host | kontejner sdílí síťový stack hostitele |
none | žádná síť |
container | sdílení síťového namespace jiného kontejneru – přesně tohle dělá pod |
Kontejnery na vlastní síti se najdou podle jména. Kubernetes dělá totéž, jen to jméno funguje dál i po výměně kontejneru. Tomu se říká Service.
Perzistence dat
- Volume – spravuje engine. Preferovaná varianta.
- Bind mount – adresář hostitele. Vhodné pro vývoj.
- tmpfs – jen v paměti.
Dockerfile
FROM nginx:1.27-alpine
COPY index.html /usr/share/nginx/html/index.html
EXPOSE 80
Nahoru dávejte instrukce, které se mění nejméně: všechno pod změněnou vrstvou se staví znovu.