Aký je rozdiel medzi obrazom a kontajnerom?
sobes.tech AI
Odpoveď od AI
Obrázok (image) — je statický, nemenný snímok súborového systému a konfiguračných parametrov potrebných na spustenie aplikácie. Slúži ako šablóna.
Kontajner (container) je bežiaca inštancia obrázka. Je dynamický a predstavuje bežiaci proces s vlastným sieťovým rozhraním, súborovým systémom (založeným na obrázku) a izolovaným prostredím.
| Charakteristika | Obrázok | Kontajner |
|---|---|---|
| Stav | Nemenný | Menný |
| Entita | Šablóna | Bežiaca inštancia |
| Veľkosť | Zvyčajne menšia ako bežiaci kontajner | Môže byť väčšia kvôli zápisovej vrstve |
| Životný cyklus | Vytvorený, uložený | Vytvorený, spustený, zastavený, odstránený |
Príklad: Dockerfile:
# Základný obrázok
FROM ubuntu:latest
# Kopírovanie aplikácie
COPY app /app
# Inštalácia závislostí
RUN apt-get update && apt-get install -y python3
# Definovanie pracovného adresára
WORKDIR /app
# Príkaz na spustenie
CMD ["python3", "main.py"]
Tento Dockerfile popisuje, ako zostaviť obrázok. Po zostavení obrázka, napríklad príkazom docker build -t myapp ., získame statický obrázok myapp.
Potom, spustením príkazu docker run -d myapp, vytvoríme kontajner na základe tohto obrázka. Tento kontajner je aktívny proces, v ktorom beží naša aplikácia. Môžu byť vytvorené viaceré kontajnery z jedného obrázka. Zmeny vnútri kontajnera (napríklad zápis súborov) neovplyvňujú samotný obrázok ani iné kontajnery vytvorené z neho, vďaka mechanizmu Copy-on-Write.