Mein Einstieg in Docker – und die Befehle, die ich wirklich ständig nutze

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 --version

Wenn 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:latest

Tipp 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 images

Wenn 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
  • -d startet den Container „detached“ (im Hintergrund)
  • -p 8080:80 mappt Host-Port 8080 auf Container-Port 80
  • --name webserver gibt 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-world

5) docker ps – welche Container laufen gerade?

Ich nutze docker ps ständig, um den Status zu checken:

docker ps

Und wenn ich wirklich alle Container sehen will (auch gestoppte):

docker ps -a

6) docker stop & docker start – kontrolliert anhalten und wieder starten

Wenn ein Container gerade nicht gebraucht wird, stoppe ich ihn:

docker stop webserver

Und später starte ich ihn wieder:

docker start webserver

Das 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 webserver

Wichtig: Der Container muss dafür gestoppt sein. Falls nicht, mache ich es in einem Schritt:

docker rm -f webserver

8) docker logs – mein erster Griff bei Problemen

Wenn etwas nicht funktioniert, schaue ich als Erstes in die Logs:

docker logs webserver

Und wenn ich live mitlesen will (z.B. beim Debuggen):

docker logs -f webserver

9) 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/sh

Je nach Image ist statt /bin/sh auch /bin/bash verfügbar:

docker exec -it webserver /bin/bash

Mini-Check im Container: Ich mache dann oft sowas:

ls -la
ps aux
env

10) 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 webserver

Praktisch ist das auch in Kombination mit Formatierung. Zum Beispiel die Container-IP:

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' webserver

11) docker stats – Ressourcenverbrauch live beobachten

Wenn mein Laptop-Lüfter plötzlich abhebt, schaue ich hier rein:

docker stats

Damit 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 prune

Warnung 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 -a

Meine „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 webserver

Workflow B: „In den Container rein und etwas prüfen“

docker ps
docker exec -it webserver /bin/sh

Workflow C: „Wenn’s hakt: Logs + Inspect + Stats“

docker logs webserver
docker inspect webserver
docker stats

Fazit

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
Nach oben scrollen