Sobes.tech
Junior

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.