Zum Inhalt springen

Docker Befehle

Umfassende Docker-Befehle und Workflows für Containerisierung auf allen Plattformen.

Grundlegende Befehle

BefehlBeschreibung
docker --versionDocker-Version anzeigen
docker infoSystemweite Informationen anzeigen
docker helpHilfe für Docker-Befehle anzeigen
docker imagesAlle Bilder auflisten
docker psListe laufender Container
docker ps -aAlle 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

BefehlBeschreibung
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> bashBash 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 statsContainer-Ressourcennutzung anzeigen
docker top <container>Laufende Prozesse im Container anzeigen

Image-Verwaltung

BefehlBeschreibung
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.tarBild in tar-Datei speichern
docker load < file.tarBild aus tar-Datei laden
docker history <image>Bildverlauf anzeigen
docker search <term>Nach Bildern in Registry suchen

Docker Compose

BefehlBeschreibung
docker-compose upDienste starten, die in der Compose-Datei definiert sind
docker-compose up -dDienste im Detached-Modus starten
docker-compose downContainer stoppen und entfernen
docker-compose buildServices erstellen oder neu aufbauen
docker-compose logsProtokolle für alle Services anzeigen
docker-compose psContainer auflisten
docker-compose exec <service> bashBefehl im Service ausführen
docker-compose pullPull neueste Images
docker-compose restartServices neu starten

Netzwerk-Verwaltung

BefehlBeschreibung
docker network lsNetzwerke 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

BefehlBeschreibung
docker volume lsVolumes 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 pruneNicht 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