Zum Inhalt

Docker Befehle

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 Sielatest
  • 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)

Performance

  • 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