Grundlagen von Docker-Images
Was ist ein Docker-Image?
Ein Docker-Image ist ein leichtgewichtiges, eigenständiges und ausführbares Paket, das alles enthält, was zum Ausführen einer Software benötigt wird, einschließlich Code, Laufzeitumgebung, Systemtools, Bibliotheken und Einstellungen. Es dient als Blaupause für die Erstellung von Docker-Containern.
Hauptbestandteile von Docker-Images
Image-Layers
Docker-Images bestehen aus mehreren schreibgeschützten Layers, die übereinander gestapelt sind. Jeder Layer repräsentiert eine Reihe von Änderungen am Dateisystem:
graph TD
A[Basis-Layer: Ubuntu] --> B[Python installieren]
B --> C[Anwendungskode kopieren]
C --> D[Eingabeaufforderung festlegen]
Image-Anatomie
Ein typisches Docker-Image besteht aus mehreren wichtigen Elementen:
Komponente |
Beschreibung |
Beispiel |
Basis-Image |
Fundamentale Schicht |
Ubuntu, Alpine Linux |
Metadaten |
Image-Konfiguration |
Exponierte Ports, Umgebungsvariablen |
Dateisystem-Layers |
Inkrementale Änderungen |
Paketinstallationen, Dateimodifikationen |
Eingabeaufforderung |
Standardbefehl zur Ausführung |
Python-Skript, Webserver |
Erstellung von Docker-Images
Grundlagen von Dockerfiles
Ein Dockerfile ist eine Textdatei, die Anweisungen zum Erstellen eines Docker-Images enthält:
## Beispiel-Dockerfile für eine Python-Anwendung
FROM ubuntu:22.04
## Arbeitsverzeichnis festlegen
WORKDIR /app
## Abhängigkeiten installieren
RUN apt-get update \
&& apt-get install -y python3 python3-pip
## Anwendungsdateien kopieren
COPY . /app
## Python-Abhängigkeiten installieren
RUN pip3 install -r requirements.txt
## Standardbefehl festlegen
CMD ["python3", "app.py"]
Erstellen eines Images
Um ein Docker-Image aus einem Dockerfile zu erstellen:
## Befehl zum Erstellen
docker build -t myapp:latest .
## Imageerstellung überprüfen
docker images
Image-Verwaltung
Images ziehen
Rufen Sie Images von Docker Hub oder privaten Registern ab:
## Ziehen eines offiziellen Ubuntu-Images
docker pull ubuntu:22.04
## Ziehen einer bestimmten Version
docker pull python:3.9-slim
Image-Speicherung
Docker speichert Images in einem lokalen Registry, typischerweise unter /var/lib/docker/images
auf Ubuntu-Systemen.
Best Practices
- Verwenden Sie minimale Basis-Images.
- Minimieren Sie die Anzahl der Layers.
- Nutzen Sie den Build-Cache.
- Vermeiden Sie die Installation unnötiger Pakete.
- Verwenden Sie Multi-Stage-Builds für die Optimierung.
LabEx-Lerntipp
Erkunden Sie die Grundlagen von Docker-Images durch praktische Labore in der LabEx-Plattform, um praktische Erfahrungen mit Containertechnologien zu sammeln.