Jaký je rozdíl mezi obrazem a kontejnerem?
sobes.tech AI
Odpověď od AI
Obrázek (image) je statický, neměnný snímek souborového systému a konfiguračních parametrů potřebných k spuštění aplikace. Slouží jako šablona.
Kontejner (container) je běžící instance obrázku. Je dynamický a představuje běžící proces s vlastním síťovým rozhraním, souborovým systémem (založeným na obrázku) a izolovaným prostředím.
| Charakteristika | Obrázek | Kontejner |
|---|---|---|
| Stav | Neměnný | Měnitelný |
| Entita | Šablona | Běžící instance |
| Velikost | Obvykle menší než běžící kontejner | Může být větší kvůli zapisovací vrstvě |
| Životní cyklus | Vytvořen, uložen | Vytvořen, spuštěn, zastaven, odstraněn |
Příklad: Dockerfile:
# Základní obrázek
FROM ubuntu:latest
# Kopírování aplikace
COPY app /app
# Instalace závislostí
RUN apt-get update && apt-get install -y python3
# Definice pracovního adresáře
WORKDIR /app
# Spouštěcí příkaz
CMD ["python3", "main.py"]
Tento Dockerfile popisuje, jak sestavit obrázek. Po sestavení obrázku, například příkazem docker build -t myapp ., získáme statický obrázek myapp.
Poté, spuštěním příkazu docker run -d myapp, vytvoříme kontejner na základě tohoto obrázku. Tento kontejner je aktivní proces, ve kterém běží naše aplikace. Může být vytvořeno několik kontejnerů z jednoho obrázku. Změny uvnitř kontejneru (například zápis souborů) neovlivňují samotný obrázek ani jiné kontejnery vytvořené z něj, díky mechanismu Copy-on-Write.