Grundlagen von Docker-Containern
Was ist ein Docker-Container?
Ein Docker-Container ist ein leichtgewichtiges, eigenständiges, ausführbares Paket, das alles enthält, was zum Ausführen einer Anwendung benötigt wird: Code, Laufzeitumgebung, Systemtools, Bibliotheken und Einstellungen. Container bieten eine konsistente und reproduzierbare Umgebung auf verschiedenen Computing-Plattformen.
Hauptmerkmale von Docker-Containern
Merkmal |
Beschreibung |
Isolation |
Container laufen in isolierten Benutzerbereichen |
Portabilität |
Können konsistent auf verschiedenen Umgebungen ausgeführt werden |
Effizienz |
Leichtgewichtig und teilen den Kernel des Hostsystems |
Skalierbarkeit |
Einfache Skalierung nach oben oder unten |
Container-Lebenszyklusverwaltung
stateDiagram-v2
[*] --> Created
Created --> Running
Running --> Paused
Paused --> Running
Running --> Stopped
Stopped --> Removed
Removed --> [*]
Grundlegende Docker-Container-Befehle
Erstellen und Ausführen von Containern
## Ziehen Sie ein Image von Docker Hub
docker pull ubuntu:22.04
## Führen Sie einen neuen Container aus
docker run -it ubuntu:22.04 /bin/bash
## Liste der laufenden Container
docker ps
## Liste aller Container
docker ps -a
Containerkonfiguration
Container werden mit Dockerfile definiert, das das Basis-Image, die Umgebungseinstellungen und die Anwendungsbereitstellung spezifiziert.
Beispiel Dockerfile
## Verwenden Sie das offizielle Ubuntu-Basis-Image
FROM ubuntu:22.04
## Legen Sie Umgebungsvariablen fest
ENV APP_HOME=/app
## Installieren Sie Abhängigkeiten
RUN apt-get update && apt-get install -y \
python3 \
python3-pip
## Legen Sie das Arbeitsverzeichnis fest
WORKDIR $APP_HOME
## Kopieren Sie Anwendungsdateien
COPY . $APP_HOME
## Installieren Sie Python-Abhängigkeiten
RUN pip3 install -r requirements.txt
## Exponieren Sie den Anwendungsport
EXPOSE 8000
## Definieren Sie den Startbefehl
CMD ["python3", "app.py"]
Container-Networking
Docker bietet mehrere Netzwerkmodi zum Verbinden von Containern:
- Bridge-Netzwerk (Standard)
- Host-Netzwerk
- Overlay-Netzwerk
- Macvlan-Netzwerk
Best Practices
- Halten Sie Container klein und fokussiert
- Verwenden Sie offizielle Basis-Images
- Minimieren Sie die Anzahl der Schichten
- Vermeiden Sie die Ausführung von Containern als root
- Verwenden Sie mehrstufige Builds
Mit LabEx können Sie die Verwaltung von Docker-Containern in einer praxisorientierten Lernumgebung üben und erkunden.