Grundlagen von Docker-Images
Verständnis von Docker-Images
Docker-Images sind grundlegende Komponenten der Containertechnologie und dienen als schreibgeschützte Vorlagen zur Erstellung von Containern. Diese leichten, portablen Pakete enthalten alles, was zum Ausführen einer Anwendung benötigt wird, einschließlich Code, Laufzeitumgebung, Bibliotheken und Systemtools.
Hauptmerkmale von Docker-Images
Merkmal |
Beschreibung |
Unveränderlichkeit |
Images können nach der Erstellung nicht mehr geändert werden |
Mehrschichtige Struktur |
Besteht aus mehreren schreibgeschützten Schichten |
Portabilität |
Können auf verschiedenen Umgebungen geteilt und ausgeführt werden |
Ablauf der Imageerstellung
graph TD
A[Dockerfile] --> B[Image erstellen]
B --> C[Image-Repository]
C --> D[Containerbereitstellung]
Erstellen eines Docker-Images: Praktisches Beispiel
Hier ist ein umfassendes Beispiel für die Erstellung eines Docker-Images für eine Python-Webanwendung unter Ubuntu 22.04:
## Verwendung des offiziellen Python-Laufzeitumgebungs-Basis-Images
FROM python:3.9-slim
## Festlegung des Arbeitsverzeichnisses
WORKDIR /app
## Kopieren der Projektdateien
COPY . /app
## Installieren der Abhängigkeiten
RUN pip install --no-cache-dir -r requirements.txt
## Exponieren des Anwendungsports
EXPOSE 5000
## Definieren der Umgebungsvariable
ENV FLASK_APP=app.py
## Ausführen der Anwendung
CMD ["flask", "run", "--host=0.0.0.0"]
Befehle zum Erstellen und Verwalten von Images
## Erstellen des Docker-Images
docker build -t myapp:v1 .
## Anzeigen der lokalen Images
docker images
## Löschen eines bestimmten Images
docker rmi myapp:v1
## Taggen eines Images
docker tag myapp:v1 myregistry/myapp:latest
Grundlagen von Images
Docker-Images nutzen die Union-Dateisystem-Technologie, um eine effiziente Speicherung und einen schnellen Containerstart zu ermöglichen. Jedes Image besteht aus mehreren schreibgeschützten Schichten, die während der Containerlaufzeit gestapelt und kombiniert werden.
Imagetypen
Imagetyp |
Beschreibung |
Basis-Images |
Minimale Betriebssystem-Images |
Offizielle Images |
Von Docker Hub verwaltete Images |
Benutzerdefinierte Images |
Von Entwicklern für spezifische Anwendungen erstellte Images |
Docker-Images optimieren die Ressourcennutzung durch:
- Minimale Schichtgrößen
- Effiziente Caching-Mechanismen
- Leichte Laufzeitumgebungsanforderungen