Docker - Image - Grundlagen
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 eines Softwareteils erforderlich ist, einschließlich des Codes, der Laufzeitumgebung, der Systemtools, der Bibliotheken und der Einstellungen. Es dient als Blaupause für die Erstellung von Containern, die ausführbare Instanzen von Images sind.
Wichtige Komponenten von Docker - Images
Image - Layer
Docker - Images werden mit einem schichtweisen Ansatz erstellt, bei dem jeder Layer eine Reihe von Dateisystemänderungen darstellt:
graph TD
A[Base Image Layer] --> B[Application Layer]
B --> C[Configuration Layer]
C --> D[Runtime Layer]
Image - Anatomie
Ein typisches Docker - Image besteht aus:
- Basisimage (Base Image)
- Anwendungscode (Application Code)
- Abhängigkeiten (Dependencies)
- Konfigurationsdateien (Configuration Files)
- Startskripte (Startup Scripts)
Erstellen von Docker - Images
Dockerfile - Grundlagen
Ein Dockerfile ist ein Textdokument, das Anweisungen zur Erstellung eines Docker - Images enthält:
## Base image
FROM ubuntu:22.04
## Metadata
LABEL maintainer="LabEx Team"
## Update system packages
RUN apt-get update && apt-get upgrade -y
## Install dependencies
RUN apt-get install -y python3 python3-pip
## Set working directory
WORKDIR /app
## Copy application files
COPY . /app
## Install application dependencies
RUN pip3 install -r requirements.txt
## Expose application port
EXPOSE 8000
## Define startup command
CMD ["python3", "app.py"]
Image - Build - Prozess
Build - Stufen
Der Image - Build - Prozess umfasst mehrere Schlüsselschritte:
Stufe |
Beschreibung |
Befehl |
Basisimage herunterladen (Pull Base Image) |
Basisimage herunterladen |
docker pull ubuntu:22.04 |
Dockerfile - Anweisungen ausführen (Execute Dockerfile Instructions) |
Image - Layer erstellen |
docker build -t myapp . |
Image erstellen (Create Image) |
Endgültiges Image generieren |
Automatisch während des Builds |
Image - Verwaltungsbefehle
Häufige Docker - Image - Befehle
docker images
: Liste der lokalen Images
docker build
: Image aus Dockerfile erstellen
docker tag
: Image taggen
docker rmi
: Images entfernen
docker push
: Image in die Registry hochladen
Bewährte Verfahren
Image - Optimierung
- Verwenden Sie minimale Basisimages.
- Minimieren Sie die Anzahl der Layer.
- Entfernen Sie unnötige Dateien.
- Verwenden Sie mehrstufige Builds.
- Nutzen Sie den Build - Cache.
Image - Speicherung und - Verteilung
Image - Registries
Images können über folgende registriert und geteilt werden:
- Docker Hub
- Private Registries
- Cloud - Container - Registries
Praktische Überlegungen
Image - Größe und Leistung
- Kleinere Images laden schneller.
- Reduzierte Speicheranforderungen.
- Verbesserte Bereitstellungsgeschwindigkeit.
LabEx - Empfehlung
Bei LabEx empfehlen wir, die Erstellung und Verwaltung von Images in praktischen Labs und realen Szenarien zu üben, um praktische Docker - Kenntnisse zu erwerben.