Als ich mit Containern angefangen habe, war Docker für mich die Eintrittskarte in eine Welt, in der Umgebungen plötzlich reproduzierbar wurden: gleiche App, gleiche Abhängigkeiten, gleiche Laufzeit – egal ob auf meinem Laptop, im CI oder später auf dem Server.
Am Anfang wirkte die CLI wie eine Wand aus kryptischen Befehlen. Heute weiß ich: Ich brauche gar nicht „alles“. Ein solides Set an Standardkommandos bringt mich in 90% der Fälle ans Ziel. In diesem Artikel zeige ich dir genau diese Docker-Befehle – aus meiner Ich-Perspektive, mit Beispielen, die du direkt copy & paste kannst.
1) docker --version – kurz prüfen, ob alles bereit ist
Bevor ich irgendwas starte, checke ich kurz die Docker-Version. Das ist mein „Hallo Welt“ für Docker:
docker --versionWenn hier sauber eine Version zurückkommt, weiß ich: Docker ist installiert und grundsätzlich erreichbar.
2) docker pull – ein Image holen
Docker-Images sind für mich wie „paketierte Laufzeit-Umgebungen“. Wenn ich z.B. Nginx brauche, lade ich es aus der Registry:
docker pull nginx:latestTipp aus der Praxis: Nutze bewusst Tags (z.B. 1.27 statt latest), wenn du reproduzierbare Builds willst.
3) docker images – sehen, was lokal vorhanden ist
Danach verschaffe ich mir einen Überblick über lokale Images:
docker imagesWenn ich aufräumen will, ist das die Liste, die ich zuerst anschaue.
4) docker run – mein Allrounder zum Starten von Containern
Der Befehl, den ich am häufigsten tippe: docker run. Damit starte ich einen Container – im Hintergrund, mit Port-Mapping und einem Namen:
docker run -d -p 8080:80 --name webserver nginx:latest-dstartet den Container „detached“ (im Hintergrund)-p 8080:80mappt Host-Port 8080 auf Container-Port 80--name webservergibt dem Container einen sprechenden Namen
Danach kann ich im Browser http://localhost:8080 öffnen.
Bonus: Container nur mal kurz testen (und automatisch entfernen)
Wenn ich etwas nur kurz ausprobieren will, nutze ich gerne --rm. Dann räumt Docker nach dem Beenden automatisch auf:
docker run --rm hello-world5) docker ps – welche Container laufen gerade?
Ich nutze docker ps ständig, um den Status zu checken:
docker psUnd wenn ich wirklich alle Container sehen will (auch gestoppte):
docker ps -a6) docker stop & docker start – kontrolliert anhalten und wieder starten
Wenn ein Container gerade nicht gebraucht wird, stoppe ich ihn:
docker stop webserverUnd später starte ich ihn wieder:
docker start webserverDas ist für mich der Standard-Workflow, wenn ich z.B. an einer lokalen Umgebung arbeite und nebenbei Ressourcen sparen möchte.
7) docker rm – Container entfernen
Wenn ich einen Container endgültig entsorgen will:
docker rm webserverWichtig: Der Container muss dafür gestoppt sein. Falls nicht, mache ich es in einem Schritt:
docker rm -f webserver8) docker logs – mein erster Griff bei Problemen
Wenn etwas nicht funktioniert, schaue ich als Erstes in die Logs:
docker logs webserverUnd wenn ich live mitlesen will (z.B. beim Debuggen):
docker logs -f webserver9) docker exec – in einen laufenden Container „reinspringen“
Wenn ich in einem Container etwas prüfen möchte (Dateien, Prozesse, Konfiguration), nutze ich docker exec. Das ist mein „SSH“ in Docker:
docker exec -it webserver /bin/shJe nach Image ist statt /bin/sh auch /bin/bash verfügbar:
docker exec -it webserver /bin/bashMini-Check im Container: Ich mache dann oft sowas:
ls -la
ps aux
env10) docker inspect – Details, IPs, Mounts & Konfigurationswerte
Wenn ich wissen will, wie ein Container genau läuft (Netzwerk, Mounts, Labels, Env-Variablen), nutze ich inspect:
docker inspect webserverPraktisch ist das auch in Kombination mit Formatierung. Zum Beispiel die Container-IP:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' webserver11) docker stats – Ressourcenverbrauch live beobachten
Wenn mein Laptop-Lüfter plötzlich abhebt, schaue ich hier rein:
docker statsDamit sehe ich CPU, RAM, Netzwerk-I/O pro Container – live.
12) docker system prune – einmal aufräumen (mit Gefühl)
Irgendwann sammelt sich alles an: alte Container, Networks, dangling Images. Dann putze ich:
docker system pruneWarnung aus Erfahrung: Das löscht Dinge, die du vielleicht noch brauchst. Wenn ich unsicher bin, schaue ich vorher mit docker ps -a und docker images, was noch wichtig ist.
Wenn ich wirklich gründlich sein will (inkl. ungenutzter Images):
docker system prune -aMeine „Kochrezepte“ – drei kurze Workflows, die ich ständig mache
Workflow A: „Nginx lokal starten und wieder wegräumen“
docker pull nginx:latest
docker run -d -p 8080:80 --name webserver nginx:latest
docker logs -f webserver
docker stop webserver
docker rm webserverWorkflow B: „In den Container rein und etwas prüfen“
docker ps
docker exec -it webserver /bin/shWorkflow C: „Wenn’s hakt: Logs + Inspect + Stats“
docker logs webserver
docker inspect webserver
docker statsFazit
Wenn ich heute Docker nutze, dann dreht sich mein Alltag um ein paar Kernbefehle:
- Starten & Verwalten:
docker run,docker ps,docker stop,docker start,docker rm - Debuggen:
docker logs,docker exec,docker inspect,docker stats - Aufräumen:
docker system prune