Einführung
Docker hat die Softwareentwicklung revolutioniert, indem es eine leistungsstarke Plattform für die Containerisierung bietet. Dieses umfassende Tutorial führt Sie durch die grundlegenden Docker-Befehle und hilft Entwicklern und Systemadministratoren, Docker-Container, -Images und -Netzwerke effizient zu verwalten. Ob Sie ein Anfänger sind oder Ihre Docker-Kenntnisse auffrischen möchten, dieser Leitfaden bietet praktische Einblicke in die Verwendung der Docker-Befehlszeilenschnittstelle.
Docker-Kernkonzepte
Was ist Docker?
Docker ist eine Open-Source-Plattform, die die Automatisierung der Anwendungsbereitstellung, Skalierung und Verwaltung durch Containerisierung ermöglicht. Entwickler können Anwendungen mit allen Abhängigkeiten in standardisierte Einheiten, sogenannte Container, verpacken, die in verschiedenen Computing-Umgebungen konsistent ausgeführt werden können.
Wichtige Docker-Konzepte
1. Container
Container sind leichte, eigenständige, ausführbare Pakete, die alles enthalten, was zum Ausführen einer Anwendung benötigt wird:
- Code
- Laufzeitumgebung
- Systemtools
- Systembibliotheken
- Einstellungen
graph LR
A[Anwendungskode] --> B[Container]
C[Abhängigkeiten] --> B
D[Systembibliotheken] --> B
E[Konfiguration] --> B
2. Images
Docker-Images sind schreibgeschützte Vorlagen, die zum Erstellen von Containern verwendet werden. Sie dienen als Blaupausen für die Containererstellung und können in Registern wie Docker Hub gespeichert werden.
3. Dockerfile
Ein Dockerfile ist eine Textdatei, die Anweisungen zum Erstellen eines Docker-Images enthält. Es definiert die Umgebung, Abhängigkeiten und Konfiguration für eine Anwendung.
Beispiel Dockerfile:
FROM ubuntu:22.04
RUN apt-get update
RUN apt-get install -y python3
COPY . /app
WORKDIR /app
CMD ["python3", "app.py"]
4. Docker-Architektur
graph TB
A[Docker Client] --> B[Docker Daemon]
B --> C[Container Runtime]
B --> D[Image Registry]
B --> E[Image Storage]
5. Container vs. virtuelle Maschinen
| Merkmal | Container | Virtuelle Maschinen |
|---|---|---|
| Ressourcenverbrauch | Leichtgewichtig | Schwer |
| Startzeit | Sekunden | Minuten |
| Isolierungsebene | Prozessebene | Vollständige Betriebssystem-Ebene |
| Leistung | Hoch | Gering |
Vorteile von Docker
- Konsistenz über verschiedene Umgebungen hinweg
- Schnellere Bereitstellung
- Verbesserte Skalierbarkeit
- Bessere Ressourcenauslastung
- Vereinfachte Abhängigkeitsverwaltung
Anwendungsfälle
- Microservices-Architektur
- Continuous Integration/Continuous Deployment (CI/CD)
- Cloud-native Anwendungsentwicklung
- Vereinfachte Anwendungstests
Erste Schritte mit LabEx
LabEx bietet interaktive Docker-Lernumgebungen, die Entwicklern helfen, Containerisierungstechnologien schnell zu verstehen und zu üben.
Docker Installationsanleitung
Voraussetzungen
Bevor Sie Docker installieren, stellen Sie sicher, dass Ihr Ubuntu 22.04-System die folgenden Anforderungen erfüllt:
- 64-Bit-Betriebssystem
- Kernelversion 3.10 oder höher
- Ausreichende Systemressourcen
Installationsmethoden
1. Installation über das Repository
Schritt 1: Aktualisierung des Paketindex
sudo apt-get update
Schritt 2: Installation der benötigten Pakete
sudo apt update
sudo apt-get install ca-certificates curl gnupg lsb-release
Schritt 3: Hinzufügen des offiziellen Docker GPG-Schlüssels
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Schritt 4: Einrichten des Docker Repositorys
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Schritt 5: Installation der Docker Engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
2. Installation überprüfen
sudo docker --version
sudo docker run hello-world
Installationsablauf
graph TD
A[System aktualisieren] --> B[Abhängigkeiten installieren]
B --> C[GPG-Schlüssel hinzufügen]
C --> D[Repository konfigurieren]
D --> E[Docker installieren]
E --> F[Installation überprüfen]
Schritte nach der Installation
1. Docker als Nicht-Root-Benutzer verwalten
sudo usermod -aG docker $USER
newgrp docker
2. Docker beim Systemstart starten konfigurieren
sudo systemctl enable docker
sudo systemctl start docker
Docker Installationsoptionen
| Methode | Vorteile | Nachteile |
|---|---|---|
| Repository | Einfache Updates | Internetverbindung erforderlich |
| Offizielles Paket | Direkte Kontrolle | Manuelle Updates |
| Skriptinstallation | Schnelle Einrichtung | Weniger sicher |
Fehlerbehebung bei häufigen Problemen
- Systemkompatibilität prüfen
- Netzwerkverbindung überprüfen
- Ausreichenden Speicherplatz gewährleisten
- Systempakete regelmäßig aktualisieren
LabEx Docker Lernumgebung
LabEx bietet interaktive Docker Installations-Tutorials und praktische Übungsumgebungen, um Entwicklern zu helfen, Containerisierungstechnologien schnell und effektiv zu meistern.
Empfohlene Systemanforderungen
| Komponente | Mindestanforderung |
|---|---|
| CPU | 2 Kerne |
| RAM | 4 GB |
| Festplattenspeicher | 20 GB |
| Betriebssystem | Ubuntu 22.04 LTS |
Grundlegende Docker-Befehle
Docker-Befehlsstruktur
Docker-Befehle folgen einer Standardsyntax:
docker [Befehl] [Optionen] [Argumente]
Befehle zur Imageverwaltung
1. Images ziehen
docker pull ubuntu:latest
docker pull nginx:alpine
2. Images auflisten
docker images
docker image ls
3. Images löschen
docker rmi ubuntu:latest
docker image rm nginx:alpine
Befehle zur Containerverwaltung
1. Container erstellen und starten
docker run -d --name web-server nginx
docker run -it ubuntu:latest /bin/bash
2. Container auflisten
docker ps ## Laufende Container
docker ps -a ## Alle Container
3. Container starten, stoppen und neu starten
docker start web-server
docker stop web-server
docker restart web-server
4. Container löschen
docker rm web-server
docker container prune ## Löscht alle gestoppten Container
Befehle zur Containerinteraktion
1. Befehle im Container ausführen
docker exec -it web-server bash
docker exec web-server ls /var/www/html
2. Container-Logs anzeigen
docker logs web-server
docker logs -f web-server ## Logausgabe verfolgen
Docker-Workflow
graph TD
A[Image ziehen] --> B[Container erstellen]
B --> C[Container starten]
C --> D[Interaktion/Ausführen]
D --> E[Container stoppen]
E --> F[Container löschen]
Erweiterte Docker-Befehle
1. Benutzerdefinierte Images erstellen
docker build -t myapp:v1 .
2. Docker Volumes
docker volume create myvolume
docker run -v myvolume:/app nginx
3. Netzwerkverwaltung
docker network create mynetwork
docker run --network mynetwork nginx
Häufige Docker-Befehlskategorien
| Kategorie | Zweck | Beispielbefehle |
|---|---|---|
| Imageverwaltung | Docker-Images verwalten | pull, push, build |
| Containerverwaltung | Container steuern | run, start, stop |
| Systemverwaltung | Docker-Systeminformationen | info, version |
| Netzwerkverwaltung | Netzwerke verwalten | network create |
| Volumeverwaltung | Persistent Daten verwalten | volume create |
Best Practices
- Verwenden Sie spezifische Image-Tags.
- Löschen Sie nicht benötigte Ressourcen.
- Verwenden Sie Docker Compose für komplexe Umgebungen.
- Implementieren Sie mehrstufige Builds.
LabEx Docker-Lernen
LabEx bietet interaktive Umgebungen, um diese Docker-Befehle zu üben und Entwicklern so effizient praktische Containerisierungskompetenzen zu vermitteln.
Nützliche Docker-Befehlsoptionen
| Option | Beschreibung | Beispiel |
|---|---|---|
-d |
Abgekoppelter Modus | docker run -d nginx |
-it |
Interaktives Terminal | docker run -it ubuntu |
--name |
Container benennen | docker run --name web nginx |
-p |
Port-Mapping | docker run -p 8080:80 nginx |
Zusammenfassung
Mit dem Erlernen dieser grundlegenden Docker-Befehle haben Sie wesentliche Fähigkeiten zur Containerverwaltung und -bereitstellung erworben. Docker bietet eine robuste Lösung für die Erstellung, Ausführung und Verwaltung von Containern in verschiedenen Umgebungen. Wenn Sie die Möglichkeiten von Docker weiter erkunden, denken Sie daran, dass diese grundlegenden Befehle die Grundlage effizienter Containerisierungsstrategien bilden. Üben und experimentieren Sie mit diesen Befehlen, um in der Docker-Technologie versiert zu werden und Ihre Entwicklungsworkflows zu optimieren.



