~/cheat-sheets / docker
Docker Befehle
Praxiserprobte Docker- und Compose-Befehle für den Betrieb – durchsuchbar und mit einem Klick kopierbar. Mit Warnhinweisen bei Befehlen, die Daten löschen.
Als PDF herunterladen (A4, frei teilbar) ↓
38 Befehle
Images
Lokale Images auflisten
docker imagesImage mit festem Tag laden
docker pull nginx:1.27Image aus dem Dockerfile im aktuellen Ordner bauen
docker build -t myapp:1.0 .Image für eine Registry umbenennen
docker tag myapp:1.0 registry.example.com/myapp:1.0Image löschen
⚠ Vorsicht: verändert oder löscht Datendocker rmi myapp:1.0
Container starten & verwalten
Laufende Container auflisten
docker psAlle Container inkl. beendeter auflisten
docker ps -aContainer im Hintergrund mit Port-Mapping starten
docker run -d --name web -p 8080:80 nginxWegwerf-Container mit interaktiver Shell
docker run --rm -it alpine shContainer nach Reboot oder Absturz neu starten
docker run -d --restart unless-stopped nginxContainer geordnet stoppen (SIGTERM, dann SIGKILL)
docker stop webContainer erzwungen stoppen und löschen
⚠ Vorsicht: verändert oder löscht Datendocker rm -f web
Logs, exec & Diagnose
Letzte 100 Logzeilen und live weiterverfolgen
docker logs -f --tail 100 webShell im laufenden Container öffnen
docker exec -it web shEinzelnen Befehl im Container ausführen
docker exec web nginx -tCPU- und RAM-Verbrauch aller Container (Momentaufnahme)
docker stats --no-stream
Volumes & Netzwerke
Benanntes Volume in einen Container einhängen
docker run -v data:/var/lib/mysql mariadbVolume als Tar-Archiv sichern
docker run --rm -v data:/d -v $(pwd):/b alpine tar czf /b/data.tgz -C /d .Volume löschen – Daten sind weg
⚠ Vorsicht: verändert oder löscht Datendocker volume rm dataNetzwerke auflisten
docker network lsEigenes Bridge-Netzwerk anlegen (DNS per Containername)
docker network create appnet
Docker Compose
Stack im Hintergrund starten
docker compose up -dImages neu bauen und Stack starten
docker compose up -d --buildLogs eines Dienstes live verfolgen
docker compose logs -f webNeue Images laden, geänderte Dienste neu erstellen
docker compose pull && docker compose up -dShell in einem Dienst-Container
docker compose exec web shStack stoppen und Container samt Netzwerk entfernen
docker compose downWie down, löscht aber auch die Volumes
⚠ Vorsicht: verändert oder löscht Datendocker compose down -v
Aufräumen mit prune
Speicherbelegung durch Images, Container, Volumes
docker system dfUngetaggte (dangling) Images löschen
⚠ Vorsicht: verändert oder löscht Datendocker image pruneAlle nicht genutzten Volumes löschen – Datenverlust möglich
⚠ Vorsicht: verändert oder löscht Datendocker volume pruneGestoppte Container, ungenutzte Netze und dangling Images löschen
⚠ Vorsicht: verändert oder löscht Datendocker system pruneRadikal: alles Ungenutzte inkl. Images und Volumes
⚠ Vorsicht: verändert oder löscht Datendocker system prune -a --volumes
Ressourcen-Limits
Arbeitsspeicher auf 512 MB begrenzen
docker run -d --memory 512m nginxAuf 1,5 CPU-Kerne begrenzen
docker run -d --cpus 1.5 nginxLimits eines laufenden Containers ändern
docker update --memory 1g --memory-swap 1g webLog-Rotation für einen Container festlegen
docker run -d --log-opt max-size=10m --log-opt max-file=3 nginxOOM-Kills der letzten Stunde finden
docker events --since 1h --filter event=oom
Kein Treffer.
Neue Artikel per E-Mail
Eine E-Mail pro neuem Artikel. Kein Tracking, jederzeit abbestellbar. Als Dankeschön nach der Bestätigung: meine Checkliste „Server-Betrieb & Patching“ (PDF).