Docker Spickzettel — Befehle & Compose

Die Docker- und Docker-Compose-Befehle, die du jede Woche brauchst, in einer Zeile erklärt. Trag Image, Container, Ports und Service einmal ein — jeder Befehl aktualisiert sich und ist sofort kopierbar.

Aktualisiert am
Deine WerteAlle Beispiele darunter aktualisieren sich beim Tippen

Images

10
docker pull node:22-alpine

Ein Image aus einer Registry herunterladen.

docker image ls

Lokale Images mit ihrer Größe auflisten.

docker build -t myapp:1.0 .

Ein Image aus dem Dockerfile im aktuellen Ordner bauen.

docker build -t myapp:1.0 -f Dockerfile.prod .

Mit einem anderen Dockerfile bauen.

docker build --no-cache -t myapp:1.0 .

Jede Ebene von Grund auf neu bauen.

docker buildx build --platform linux/amd64,linux/arm64 -t ghcr.io/acme/myapp:1.0 --push .

Für Intel und ARM bauen (z. B. Apple Silicon, Graviton) und beide hochladen.

docker tag myapp:1.0 ghcr.io/acme/myapp:1.0

Einem Image vor dem Push einen Registry-Namen geben.

docker push ghcr.io/acme/myapp:1.0

Ein Image in eine Registry hochladen.

docker history myapp:1.0

Die Ebenen eines Images und ihre Größe anzeigen.

docker rmi myapp:1.0

destruktiv Ein lokales Image löschen.

Container starten

8
docker run -d --name web -p 8080:3000 myapp:1.0

Im Hintergrund starten und Container-Port {{cport}} auf Host-Port {{hport}} veröffentlichen.

docker run --rm -it node:22-alpine sh

Eine kurzlebige interaktive Shell starten; der Container wird beim Beenden entfernt.

docker run -d --restart unless-stopped --name web myapp:1.0

Nach Abstürzen und Neustarts automatisch wieder starten.

docker run --env-file .env -e NODE_ENV=production myapp:1.0

Umgebungsvariablen aus einer Datei und über die Kommandozeile übergeben.

docker run -v app-data:/data myapp:1.0

Ein benanntes Volume einhängen, damit die Daten das Entfernen des Containers überleben.

docker run --rm -v "$(pwd)":/app -w /app node:22-alpine npm test

Den aktuellen Ordner einhängen und darin einen Befehl ausführen.

docker run --memory 512m --cpus 1.5 myapp:1.0

Speicher und CPU begrenzen.

docker run -d --network app-net --name web myapp:1.0

In einem benutzerdefinierten Netzwerk starten, damit sich Container über den Namen erreichen.

Container verwalten

10
docker ps -a

Alle Container auflisten, auch gestoppte.

docker logs -f --tail 100 web

Die letzten 100 Logzeilen verfolgen.

docker exec -it web sh

Eine Shell in einem laufenden Container öffnen (nutze bash, wenn das Image es enthält).

docker stop web

Sauber stoppen (SIGTERM, danach nach 10 s SIGKILL).

docker restart web

Einen Container neu starten.

docker cp web:/app/logs ./logs

Dateien aus einem Container kopieren (zum Hineinkopieren die Argumente tauschen).

docker stats

Live-Auslastung von CPU, Speicher, Netzwerk und Festplatte laufender Container.

docker inspect -f '{{.State.Health.Status}}' web

Ein einzelnes Feld aus den Container-Details lesen — hier den Status des Health-Checks.

docker port web

Zeigen, welche Host-Ports auf den Container zeigen.

docker rm -f web

destruktiv Einen Container stoppen und löschen.

Docker Compose

12
docker compose up -d

Alle Services im Hintergrund starten.

docker compose up -d --build

Images neu bauen und dann starten.

docker compose ps

Die Services und ihren Status auflisten.

docker compose logs -f api

Die Logs eines einzelnen Services verfolgen.

docker compose exec api sh

Eine Shell in einem laufenden Service öffnen.

docker compose run --rm api npm run migrate

Einen einmaligen Befehl in einem neuen Container für einen Service ausführen.

docker compose restart api

Einen einzelnen Service neu starten.

docker compose pull

Die neuesten Images aller Services herunterladen.

docker compose config

Die Datei prüfen und die finale, zusammengeführte Konfiguration ausgeben.

docker compose -f compose.yml -f compose.prod.yml up -d

Eine Override-Datei über die Basisdatei legen.

docker compose down

Container und Netzwerke stoppen und entfernen (Volumes bleiben erhalten).

docker compose down -v

destruktiv Auch die Volumes löschen — deine Datenbanken sind danach weg.

Volumes & Netzwerke

6
docker volume ls

Volumes auflisten.

docker volume inspect app-data

Zeigen, wo ein Volume auf dem Host liegt.

docker run --rm -v app-data:/data -v "$(pwd)":/backup alpine tar czf /backup/app-data.tar.gz -C /data .

Ein Volume als .tar.gz im aktuellen Ordner sichern.

docker network create app-net

Ein Netzwerk für Container anlegen, die miteinander kommunizieren müssen.

docker network connect app-net web

Einen laufenden Container an ein Netzwerk anbinden.

docker volume rm app-data

destruktiv Ein Volume und seine Daten löschen.

Speicherplatz freigeben

5
docker system df

Zeigen, wie viel Platz Images, Container, Volumes und Build-Cache belegen.

docker builder prune

Ungenutzten Build-Cache entfernen.

docker image prune -a

destruktiv Alle Images entfernen, die von keinem Container verwendet werden.

docker system prune

destruktiv Gestoppte Container, ungenutzte Netzwerke, verwaiste Images und Build-Cache entfernen.

docker system prune -a --volumes

destruktiv Alles Ungenutzte entfernen, inklusive Volumes. Letzte Option.

Fehlersuche

5
docker run --rm -it --entrypoint sh myapp:1.0

Ein Image mit einer Shell statt seines normalen Befehls starten — für Images, die beim Start abstürzen.

docker logs web 2>&1 | grep -i error

Die Logs eines Containers durchsuchen (stdout und stderr).

docker exec web env

Die Umgebungsvariablen ausgeben, die ein Container tatsächlich sieht.

docker compose exec api wget -qO- localhost:3000/health

Einen Health-Endpunkt aus dem Service heraus aufrufen.

docker events --since 10m

Aktuelle Docker-Events live anzeigen: Starts, Stops, OOM-Kills, Health-Änderungen.

Deine Daten verlassen nie deinen Computer. Die Verarbeitung erfolgt zu 100 % lokal im Browser.

So nutzt du: Docker Spickzettel

  1. Trag deine eigenen Werte (Image, Container, Ports, Service) in die Felder oben ein — jedes Beispiel auf der Seite aktualisiert sich sofort.
  2. Suche oder spring zu einem Abschnitt, um den Befehl zu finden, den du brauchst.
  3. Klick auf Kopieren, um eine fertige Zeile zu kopieren, oder auf Abschnitt kopieren für einen kommentierten Block.
  4. Befehle mit destruktiv löschen oder überschreiben Daten — lies den Hinweis, bevor du sie ausführst.

Images, Container, Volumes und Netzwerke

Ein Image ist ein gepacktes Dateisystem mit Startbefehl, das aus einem Dockerfile gebaut wird. Ein Container ist eine laufende Kopie eines Images. Alles, was ein Container schreibt, verschwindet beim Entfernen, sofern es nicht in ein Volume geschrieben wird. Container im selben benutzerdefinierten Netzwerk erreichen sich über den Namen, so sprechen Compose-Services mit ihrer Datenbank.

-p und -v richtig lesen

Beide Flags haben das Format host:container. -p 8080:3000 bedeutet: „Anfragen an Port 8080 auf meinem Rechner gehen an Port 3000 im Container“. -v app-data:/data hängt das benannte Volume app-data unter /data ein; -v "$(pwd)":/app bindet stattdessen den aktuellen Ordner ein, und so funktioniert das Live-Neuladen von Code in der Entwicklung.

Images klein halten und Builds beschleunigen

  • Starte mit schlanken Basis-Images wie -alpine oder -slim und nutze Multi-Stage-Builds, damit keine Compiler in die Produktion gelangen.
  • Kopiere zuerst die Abhängigkeitsdateien und installiere sie, bevor der restliche Code kopiert wird, damit der Install-Layer im Cache bleibt.
  • Lege eine .dockerignore für node_modules, .git und Build-Ausgaben an.

Compose-Dateien erstellst du mit dem Docker-Compose-Generator, und für CI richtest du den GitHub-Actions-Generator ein.

Auch gesucht als: docker befehle, docker compose befehle, docker befehle liste, docker run, docker exec, docker prune, docker cheat sheet.

Passende Tools zu: Docker Spickzettel

  • Linux Befehle Spickzettel — Die Linux- und Bash-Befehle, die Entwickler auf Servern und Laptops nutzen: Dateien, Suche, Berechtigungen, Prozesse, Logs, Netzwerk und SSH.
  • Git Spickzettel — Jeder Git-Befehl, den du im Alltag brauchst, und die, die du brauchst, wenn etwas schiefgeht, in einer Zeile erklärt.
  • Nginx-Konfigurationsgenerator — Wähle aus, was Nginx tun soll – eine statische Website oder ein SPA bereitstellen, als Proxy für eine Node-/Python-App fungieren oder PHP ausführen – und setze ein Häkchen bei den Zusatzoptionen.
  • KI-Prompts für Entwickler — Erprobte Prompts für die Coding-Aufgaben, die du täglich erledigst: Debugging, Reviews, Tests, Refactoring, SQL, Commit-Messages und Dokumentation.

Häufige Fragen

Was ist der Unterschied zwischen Image und Container?
Ein Image ist eine schreibgeschützte Vorlage, die aus einem Dockerfile gebaut wird. Ein Container ist eine laufende (oder gestoppte) Instanz eines Images mit eigener beschreibbarer Ebene. Ein Image kann als beliebig viele Container laufen.
Wie gebe ich Speicherplatz frei, den Docker belegt?
Prüfe die Nutzung mit docker system df, entferne dann den Build-Cache mit docker builder prune und ungenutzte Images mit docker image prune -a. docker system prune entfernt auf einmal mehr — lies vorher, was gelöscht wird.
Heißt es docker compose oder docker-compose?
Verwende docker compose (mit Leerzeichen). Das ist Compose v2, das direkt in die Docker-CLI eingebaut ist. Das separate Tool docker-compose in Version 1 ist veraltet.
Warum können sich meine Container nicht gegenseitig erreichen?
Container im Standard-Bridge-Netzwerk können sich nicht über ihren Namen auflösen. Häng sie an ein benutzerdefiniertes Netzwerk (docker network create) oder ins gleiche Compose-Projekt und nutze dann den Service- oder Containernamen als Hostnamen.
Kann ich Docker Spickzettel als Web-App installieren und offline nutzen?
Ja. Docker Spickzettel ist eine installierbare Web-App (PWA) – sie wird über Ihren Browser installiert und nicht aus einem App-Store heruntergeladen. Klicken Sie oben auf dieser Seite in Chrome oder Edge (Windows, macOS, Linux, ChromeOS) auf „App installieren“ oder verwenden Sie auf Android-Geräten „Teilen“ → „Zum Startbildschirm hinzufügen“ auf dem iPhone und iPad bzw. „Datei“ → „Zum Dock hinzufügen“ in Safari 17+ auf einem Mac. Die App öffnet sich dann in einem eigenen Fenster mit einem eigenen Symbol, und da sie vollständig in Ihrem Browser ausgeführt wird, funktioniert sie auch offline. Firefox auf dem Desktop kann keine Web-Apps installieren. So funktioniert die Installation.

Ähnliche Tools