Sobes.tech
Junior

Was ist der Unterschied zwischen einem Image und einem Container?

sobes.tech KI

Antwort von AI

Ein Image ist eine statische, unveränderliche Momentaufnahme des Dateisystems und der Konfigurationsparameter, die zum Starten einer Anwendung erforderlich sind. Es dient als Vorlage.

Ein Container ist eine laufende Instanz eines Images. Es ist dynamisch und stellt einen laufenden Prozess mit eigener Netzwerkschnittstelle, Dateisystem (basierend auf dem Image) und isolierter Umgebung dar.

Eigenschaft Image Container
Zustand Unveränderlich Änderbar
Entität Vorlage Laufende Instanz
Größe In der Regel kleiner als ein laufender Container Kann größer sein wegen der Schreibschicht
Lebenszyklus Wird erstellt, gespeichert Wird erstellt, gestartet, gestoppt, gelöscht

Beispiel: Dockerfile:

# Basis-Image
FROM ubuntu:latest

# Anwendung kopieren
COPY app /app

# Abhängigkeiten installieren
RUN apt-get update && apt-get install -y python3

# Arbeitsverzeichnis festlegen
WORKDIR /app

# Startbefehl
CMD ["python3", "main.py"]

Dieses Dockerfile beschreibt, wie man ein Image baut. Nach dem Bauen des Images, z.B. mit dem Befehl docker build -t myapp ., erhält man ein statisches Image myapp.

Dann, durch Ausführen des Befehls docker run -d myapp, erstellen wir einen Container basierend auf diesem Image. Dieser Container ist ein aktiver Prozess, in dem unsere Anwendung läuft. Es können mehrere Container aus einem Image erstellt werden. Änderungen innerhalb eines Containers (z.B. Dateischreiben) betreffen weder das Image noch andere Container, die aus demselben erstellt wurden, dank des Copy-on-Write-Mechanismus.