Zum Inhalt springen
Docker Spickzettel: Die wichtigsten Befehle für Alltag & Notfälle

Docker Spickzettel: Die wichtigsten Befehle für Alltag & Notfälle

Docker Spickzettel: Befehle für Alltag & Notfälle

Die wichtigsten Docker-Commands kurz & prägnant – für tägliche Arbeit, Debugging und schnelles Aufräumen. Achtung: Befehle mit ⚠️ sind zerstörerisch (Datenverlust möglich).

🔎 Status & Übersicht

docker ps                  # laufende Container
docker ps -a              # alle Container (inkl. gestoppte)
docker images             # Images auflisten
docker volume ls          # Volumes auflisten
docker network ls         # Netzwerke auflisten
docker system df          # Docker-Speicherübersicht

📦 Container: Start, Stop, Remove

docker run --name <name> -d -p 8080:80 <image:tag>   # Container starten (detached)
docker start <container>                               # Starten
docker stop <container>                                # Stoppen (graceful)
docker kill <container>                                # Hard-Stop
docker restart <container>                             # Neustart
docker rm <container>                                  # Entfernen (gestoppt)
docker rm -f <container>                               # Entfernen (erzwingen) ⚠️

🐳 Images

docker pull <image:tag>        # Image laden
docker build -t <name:tag> .    # Image bauen (im aktuellen Ordner)
docker rmi <image>              # Image löschen
docker images -f "dangling=true" -q | xargs -r docker rmi   # Dangling Images löschen

🗂️ Volumes

docker volume ls
docker volume inspect <volume>                 # Details/Pfad
docker volume rm <volume>                      # Einzelnes Volume löschen ⚠️
docker volume prune -f                          # Alle ungenutzten Volumes löschen ⚠️

🌐 Netzwerke

docker network ls
docker network inspect <network>
docker network create <name>
docker network connect <network> <container>
docker network disconnect <network> <container>
docker network prune -f                         # ungenutzte Netzwerke löschen ⚠️

🛠️ Debugging: Logs, Shell & Dateien

docker logs -f --tail 200 <container>              # Live-Logs
docker exec -it <container> sh                      # Shell (BusyBox/Alpine)
docker exec -it <container> bash                    # Shell (Debian/Ubuntu)
docker cp <container>:/pfad/in/container /lokal     # Datei/Ordner kopieren (Container → Host)
docker cp /lokal <container>:/pfad/in/container      # Datei/Ordner kopieren (Host → Container)

🧹 Aufräumen

docker system prune                               # ungenutzte Daten löschen (fragt nach)
docker system prune -a -f                          # aggressiv: inkl. ungenutzter Images ⚠️
docker image prune -a -f                           # ungenutzte Images löschen ⚠️
docker container prune -f                          # gestoppte Container löschen
docker builder prune -a -f                         # Build-Cache löschen ⚠️

🧩 Docker Compose (im Projektordner)

docker compose up -d                    # starten (detached)
docker compose down                     # stoppen (ohne Volumes)
docker compose down -v                  # stoppen + Volumes löschen ⚠️
docker compose pull                     # Images aktualisieren
docker compose build --no-cache         # neu bauen ohne Cache
docker compose logs -f <service>        # Service-Logs
docker compose exec <service> sh        # Shell in Service

🔐 Env & Inspektions-Helfer

docker inspect <container-or-image> | jq .       # alle Details als JSON
docker inspect -f '{{json .Mounts}}' <container> | jq .   # Mounts/Volumes
docker exec <container> env                       # Umgebungsvariablen einsehen

🚨 Notfall-Block (mit Bedacht!)

# Alle Container stoppen
docker stop $(docker ps -q)

# Alle Container löschen ⚠️
docker rm -f $(docker ps -aq)

# Alle Volumes löschen ⚠️ (Datenverlust!)
docker volume rm $(docker volume ls -q)

# Alle ungenutzten Objekte forcieren ⚠️
docker system prune -a -f --volumes

💡 Tipps

  • Kürzel: Container/Images lassen sich mit den ersten 3–4 ID-Zeichen adressieren.
  • Tags nutzen: Vermeide latest in Produktion – nutze feste Tags.
  • Persistenz: Prüfe vor dem Löschen, ob ein Volume produktive Daten hält (inspect).
  • Compose-Kontext: Befehle immer im richtigen Projektordner ausführen.