Docker Tutorial #4: Die wichtigsten Docker-Befehle für den Alltag
Docker-Befehlsstruktur
Alle Docker-Befehle folgen diesem Muster:
docker [OBJEKT] [BEFEHL] [OPTIONEN]
Beispiel:
docker container run -d nginx
↑ ↑ ↑ ↑
Programm Objekt Befehl Optionen
Container-Befehle
Container starten
# Einfacher Start
docker run nginx
# Im Hintergrund (-d = detached)
docker run -d nginx
# Mit Port-Weiterleitung
docker run -d -p 8080:80 nginx
# Mit Namen
docker run -d --name mein-webserver nginx
# Mit Environment-Variablen
docker run -d -e MYSQL_ROOT_PASSWORD=geheim mysql
# Interaktiv mit Terminal
docker run -it ubuntu bash
Wichtigste Optionen:
-d: Detached (Hintergrund)-p HOST:CONTAINER: Port-Mapping--name: Container-Name vergeben-e: Umgebungsvariable setzen-it: Interaktiver Modus mit Terminal-v: Volume mounten--rm: Container nach Stopp löschen
Laufende Container anzeigen
# Nur laufende Container
docker ps
# Alle Container (auch gestoppte)
docker ps -a
# Nur Container-IDs
docker ps -q
# Mit Größeninformationen
docker ps -s
# Letzte X Container
docker ps -n 5
Container stoppen und starten
# Container stoppen (graceful)
docker stop container-name
# Container sofort beenden (forceful)
docker kill container-name
# Container starten
docker start container-name
# Container neu starten
docker restart container-name
# Mehrere Container gleichzeitig
docker stop container1 container2 container3
Container löschen
# Einen Container löschen
docker rm container-name
# Mit Force (auch wenn er läuft)
docker rm -f container-name
# Mehrere Container
docker rm container1 container2
# Alle gestoppten Container löschen
docker container prune
# Mit Bestätigung
docker container prune -f
Container-Informationen
# Details anzeigen
docker inspect container-name
# Logs anzeigen
docker logs container-name
# Logs in Echtzeit verfolgen
docker logs -f container-name
# Letzte 100 Zeilen
docker logs --tail 100 container-name
# Mit Timestamps
docker logs -t container-name
# Prozesse im Container
docker top container-name
# Ressourcen-Verbrauch live
docker stats
# Einzelner Container
docker stats container-name
In Container einsteigen
# Bash-Shell öffnen
docker exec -it container-name bash
# Einzelnen Befehl ausführen
docker exec container-name ls -la
# Als root ausführen
docker exec -u root -it container-name bash
# Dateien vom Container kopieren
docker cp container-name:/pfad/zur/datei.txt ./local/
docker cp ./local/datei.txt container-name:/pfad/im/container/
Image-Befehle
Images verwalten
# Alle Images anzeigen
docker images
# Image herunterladen
docker pull nginx
docker pull nginx:1.21-alpine
# Image von Docker Hub suchen
docker search nginx
# Image löschen
docker rmi image-name
# Mit Force
docker rmi -f image-name
# Ungenutzte Images löschen
docker image prune
# Alle ungenutzten Images löschen
docker image prune -a
Images erstellen
# Aus Dockerfile bauen
docker build -t mein-image:v1 .
# Mit spezifischem Dockerfile
docker build -f Dockerfile.prod -t mein-image:prod .
# Ohne Cache
docker build --no-cache -t mein-image:v1 .
# Mit Build-Argumenten
docker build --build-arg VERSION=1.0 -t mein-image:v1 .
Images taggen und pushen
# Image taggen
docker tag mein-image:v1 username/mein-image:v1
# Zu Docker Hub pushen (nach docker login)
docker push username/mein-image:v1
# Image als TAR exportieren
docker save -o mein-image.tar mein-image:v1
# Image aus TAR laden
docker load -i mein-image.tar
Volume-Befehle
# Volume erstellen
docker volume create mein-volume
# Alle Volumes anzeigen
docker volume ls
# Volume-Details
docker volume inspect mein-volume
# Volume löschen
docker volume rm mein-volume
# Ungenutzte Volumes löschen
docker volume prune
# Container mit Volume
docker run -d -v mein-volume:/data nginx
Netzwerk-Befehle
# Netzwerke anzeigen
docker network ls
# Netzwerk erstellen
docker network create mein-netzwerk
# Mit spezifischem Driver
docker network create -d bridge mein-netzwerk
# Netzwerk-Details
docker network inspect mein-netzwerk
# Container mit Netzwerk
docker run -d --network mein-netzwerk nginx
# Container zu Netzwerk hinzufügen
docker network connect mein-netzwerk container-name
# Container von Netzwerk trennen
docker network disconnect mein-netzwerk container-name
# Netzwerk löschen
docker network rm mein-netzwerk
# Ungenutzte Netzwerke löschen
docker network prune
System-Befehle
# Docker-Version
docker version
# System-Informationen
docker info
# Speicherplatz-Nutzung
docker system df
# Detaillierte Speicherinfo
docker system df -v
# Alles aufräumen (Vorsicht!)
docker system prune
# Mit Volumes
docker system prune -a --volumes
# Events in Echtzeit
docker events
Praktische Kombinationen
Alle gestoppten Container löschen
docker rm $(docker ps -aq -f status=exited)
Alle Container stoppen
docker stop $(docker ps -q)
Alle Container und Images löschen
docker stop $(docker ps -q)
docker rm $(docker ps -aq)
docker rmi $(docker images -q)
Container-Logs der letzten 5 Minuten
docker logs --since 5m container-name
Container mit Ressourcen-Limits
docker run -d \
--memory="512m" \
--cpus="0.5" \
--name limited-container \
nginx
Docker Compose Befehle
# Services starten
docker compose up -d
# Mit Rebuild
docker compose up -d --build
# Services stoppen
docker compose stop
# Services stoppen und entfernen
docker compose down
# Mit Volumes
docker compose down -v
# Logs anzeigen
docker compose logs
# Logs folgen
docker compose logs -f
# Bestimmten Service
docker compose logs api
# Services neu starten
docker compose restart
# Einzelnen Service neu starten
docker compose restart api
# Status anzeigen
docker compose ps
# Befehl in Service ausführen
docker compose exec api bash
# Einmaliger Befehl
docker compose run --rm api npm install
# Services skalieren
docker compose up -d --scale api=3
Hilfe und Dokumentation
# Allgemeine Hilfe
docker --help
# Hilfe zu einem Befehl
docker run --help
# Compose-Hilfe
docker compose --help
Shortcuts und Aliase
Fügen Sie zu Ihrer ~/.bashrc oder ~/.zshrc hinzu:
# Docker-Shortcuts
alias dps='docker ps'
alias dpsa='docker ps -a'
alias di='docker images'
alias dex='docker exec -it'
alias dlog='docker logs -f'
alias drm='docker rm'
alias drmi='docker rmi'
alias dstop='docker stop $(docker ps -q)'
# Docker Compose Shortcuts
alias dc='docker compose'
alias dcu='docker compose up -d'
alias dcd='docker compose down'
alias dcl='docker compose logs -f'
alias dcr='docker compose restart'
Nach dem Hinzufügen:
source ~/.bashrc
Wichtige Tastenkombinationen
Im interaktiven Container-Terminal:
Ctrl + P, Ctrl + Q: Container verlassen ohne zu stoppenCtrl + C: Prozess im Container beendenCtrl + D: Shell beenden und Container verlassenexit: Shell beenden
Best Practices
- Namen verwenden: Geben Sie Containern aussagekräftige Namen
- Logs prüfen: Bei Problemen immer zuerst die Logs checken
- Aufräumen: Regelmäßig
docker system pruneausführen - Tags nutzen: Verwenden Sie spezifische Versions-Tags, nicht
latest - Volumes für Daten: Niemals wichtige Daten nur im Container speichern
Cheat Sheet – Die Top 20 Befehle
# Container
docker run -d -p 8080:80 nginx # Container starten
docker ps # Laufende Container
docker ps -a # Alle Container
docker stop <name> # Container stoppen
docker rm <name> # Container löschen
docker logs -f <name> # Logs anzeigen
docker exec -it <name> bash # In Container einsteigen
# Images
docker images # Alle Images
docker pull <image> # Image herunterladen
docker rmi <image> # Image löschen
docker build -t <name> . # Image bauen
# System
docker system df # Speicherplatz
docker system prune # Aufräumen
docker info # System-Info
# Compose
docker compose up -d # Services starten
docker compose down # Services stoppen
docker compose logs -f # Logs anzeigen
docker compose ps # Status
# Aufräumen
docker container prune # Gestoppte Container
docker image prune -a # Ungenutzte Images
docker volume prune # Ungenutzte Volumes
Zusammenfassung
Diese Befehle decken 95% aller täglichen Docker-Aufgaben ab. Mit der Zeit werden sie zur zweiten Natur.
Tipp: Drucken Sie das Cheat Sheet aus und hängen Sie es neben Ihren Monitor

Author: Andreas Lang
Andreas Lang konzentriert sich seit zwei Jahrzehnten auf die Webentwicklung und Webdesign mit dem Schwerpunkt PHP, Laravel und Javascript und betreut seine Kunden mit Herz und Seele in allen Bereichen von Entwicklung, Design, Suchmaschinenoptimierung, IT-Recht, IT-Sicherheit etc.

