Umfassende Docker-Befehle und Workflows für Containerisierung auf allen Plattformen.
Grundlegende Befehle
| Befehl | Beschreibung |
|---|
docker --version | Docker-Version anzeigen |
docker info | Systemweite Informationen anzeigen |
docker help | Hilfe für Docker-Befehle anzeigen |
docker images | Alle Bilder auflisten |
docker ps | Liste laufender Container |
docker ps -a | Alle Container auflisten (laufende und gestoppte) |
docker pull <image> | Image aus Registry ziehen |
docker run <image> | Einen Container aus einem Image ausführen |
docker stop <container> | Einen laufenden Container stoppen |
docker start <container> | Einen gestoppten Container starten |
docker restart <container> | Container neu starten |
docker rm <container> | Container entfernen |
docker rmi <image> | Ein Bild entfernen |
Container-Verwaltung
| Befehl | Beschreibung |
|---|
docker run -d <image> | Container im Hintergrundmodus ausführen |
docker run -it <image> | Container interaktiv ausführen |
docker run -p 8080:80 <image> | Port 8080 auf Container-Port 80 abbilden |
docker run -v /host:/container <image> | Volume mounten |
docker run --name <name> <image> | Container mit benutzerdefiniertem Namen ausführen |
docker exec -it <container> bash | Bash in laufendem Container ausführen |
docker logs <container> | Container-Logs anzeigen |
docker logs -f <container> | Container-Logs folgen |
docker inspect <container> | Container-Details überprüfen |
docker stats | Container-Ressourcennutzung anzeigen |
docker top <container> | Laufende Prozesse im Container anzeigen |
Image-Verwaltung
| Befehl | Beschreibung |
|---|
docker build -t <name> . | Image aus Dockerfile erstellen |
docker build -t <name>:<tag> . | Image mit Tag erstellen |
docker tag <image> <new-name> | Ein Bild markieren |
docker push <image> | Image in Registry pushen |
docker save <image> > file.tar | Bild in tar-Datei speichern |
docker load < file.tar | Bild aus tar-Datei laden |
docker history <image> | Bildverlauf anzeigen |
docker search <term> | Nach Bildern in Registry suchen |
Docker Compose
| Befehl | Beschreibung |
|---|
docker-compose up | Dienste starten, die in der Compose-Datei definiert sind |
docker-compose up -d | Dienste im Detached-Modus starten |
docker-compose down | Container stoppen und entfernen |
docker-compose build | Services erstellen oder neu aufbauen |
docker-compose logs | Protokolle für alle Services anzeigen |
docker-compose ps | Container auflisten |
docker-compose exec <service> bash | Befehl im Service ausführen |
docker-compose pull | Pull neueste Images |
docker-compose restart | Services neu starten |
Netzwerk-Verwaltung
| Befehl | Beschreibung |
|---|
docker network ls | Netzwerke auflisten |
docker network create <name> | Netzwerk erstellen |
docker network rm <name> | Netzwerk entfernen |
docker network inspect <name> | Netzwerkdetails überprüfen |
docker run --network <name> <image> | Container auf bestimmtem Netzwerk ausführen |
Volume-Verwaltung
| Befehl | Beschreibung |
|---|
docker volume ls | Volumes auflisten |
docker volume create <name> | Ein Volume erstellen |
docker volume rm <name> | Ein Volume entfernen |
docker volume inspect <name> | Details des Volumes überprüfen |
docker volume prune | Nicht verwendete Volumes entfernen |
Häufige Workflows
Entwicklungs-Workflow
# Build and run application
docker build -t myapp .
docker run -p 3000:3000 myapp
# Development with volume mounting
docker run -p 3000:3000 -v $(pwd):/app myapp
# Using Docker Compose for development
docker-compose up --build
Produktions-Bereitstellung
# Build production image
docker build -t myapp:prod .
# Tag for registry
docker tag myapp:prod registry.com/myapp:latest
# Push to registry
docker push registry.com/myapp:latest
# Deploy on production server
docker pull registry.com/myapp:latest
docker run -d -p 80:3000 --name myapp-prod registry.com/myapp:latest
Container-Debugging
# Check container logs
docker logs -f container-name
# Execute shell in running container
docker exec -it container-name bash
# Inspect container configuration
docker inspect container-name
# Check resource usage
docker stats container-name
Best Practices
Dockerfile-Optimierung
- Verwenden Sie Multi-Stage-Builds zur Reduzierung der Image-Größe
- Nutzen Sie Build-Cache durch korrektes Anordnen von Anweisungen
- Verwenden Sie spezifische Base-Image-Tags, vermeiden Sie
latest
- Minimieren Sie die Anzahl der Layer
- Verwenden Sie
.dockerignorezum Ausschließen unnötiger Dateien
Sicherheit
- Führen Sie Container als Nicht-Root-Benutzer aus
- Verwenden Sie offizielle Base-Images wenn möglich
- Aktualisieren Sie Base-Images regelmäßig
- Scannen Sie Images auf Sicherheitslücken
- Begrenzen Sie Container-Ressourcen (CPU, Arbeitsspeicher)
- Verwenden Sie passende Base-Images (alpine für kleinere Größe)
- Optimieren Sie Layer-Caching
- Verwenden Sie Health Checks für Container
- Überwachen Sie Container-Ressourcennutzung
- Verwenden Sie Volumes für persistente Daten
Produktions-Bereitstellung
- Verwenden Sie Orchestrierungstools (Docker Swarm, Kubernetes)
- Implementieren Sie ordnungsgemäßes Logging und Monitoring
- Nutzen Sie Secrets-Management für sensible Daten
- Richten Sie automatische Backups ein
- Implementieren Sie Rolling Updates