Sobes.tech
Junior

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.