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.