Diese Referenz enthält die wichtigsten Docker-Befehle für den täglichen Gebrauch. Von Grundlagen bis zu fortgeschrittenen Operationen.
Docker-System
Installation prüfen
# Docker-Version
docker --version
docker version # Detaillierter
# Docker-Info
docker info
# Docker-Daemon Status
systemctl status dockerSystem aufräumen
# Ungenutzten Speicher freigeben
docker system prune
# Inkl. ungenutzter Images
docker system prune -a
# Inkl. Volumes (Vorsicht!)
docker system prune -a --volumes
# Speicherverbrauch anzeigen
docker system dfImages
Images auflisten
# Alle Images
docker images
docker image ls
# Mit Digest
docker images --digests
# Nur Image-IDs
docker images -qImages herunterladen
# Neueste Version
docker pull nginx
# Spezifische Version
docker pull nginx:1.25
# Von anderem Registry
docker pull ghcr.io/owner/image:tagImages suchen
# Docker Hub durchsuchen
docker search nginx
# Nur offizielle Images
docker search --filter is-official=true nginxImages löschen
# Einzelnes Image
docker rmi nginx
docker image rm nginx
# Mehrere Images
docker rmi nginx mysql redis
# Alle ungenutzten Images
docker image prune -a
# Image nach ID
docker rmi abc123Images taggen
# Neuen Tag erstellen
docker tag nginx:latest myregistry.com/nginx:v1.0
# Image umbenennen
docker tag old-name:tag new-name:tagImages speichern/laden
# Als Datei exportieren
docker save nginx:latest > nginx.tar
docker save nginx:latest -o nginx.tar
# Aus Datei laden
docker load < nginx.tar
docker load -i nginx.tarContainer
Container starten
# Einfacher Start
docker run nginx
# Im Hintergrund (-d = detached)
docker run -d nginx
# Mit Namen
docker run -d --name webserver nginx
# Mit Port-Mapping
docker run -d -p 8080:80 nginx
# Mit Volume
docker run -d -v /host/path:/container/path nginx
# Mit Umgebungsvariablen
docker run -d -e MYSQL_ROOT_PASSWORD=secret mysql
# Interaktiv mit Shell
docker run -it ubuntu bash
# Automatisch entfernen nach Stopp
docker run --rm nginx
# Neustart-Policy
docker run -d --restart=always nginxContainer auflisten
# Laufende Container
docker ps
# Alle Container (inkl. gestoppte)
docker ps -a
# Nur IDs
docker ps -q
# Mit Größe
docker ps -sContainer stoppen/starten
# Stoppen (graceful)
docker stop webserver
# Stoppen nach Timeout
docker stop -t 30 webserver
# Sofort beenden (kill)
docker kill webserver
# Starten
docker start webserver
# Neustarten
docker restart webserver
# Alle Container stoppen
docker stop $(docker ps -q)Container löschen
# Einzelnen Container
docker rm webserver
# Mehrere Container
docker rm container1 container2
# Alle gestoppten Container
docker container prune
# Force (auch laufende)
docker rm -f webserverContainer-Infos
# Logs anzeigen
docker logs webserver
# Logs live folgen
docker logs -f webserver
# Letzte 100 Zeilen
docker logs --tail 100 webserver
# Mit Timestamps
docker logs -t webserver
# Detaillierte Infos
docker inspect webserver
# Ressourcenverbrauch
docker stats
docker stats webserver
# Prozesse im Container
docker top webserverIn Container arbeiten
# Shell öffnen
docker exec -it webserver bash
docker exec -it webserver sh # Falls kein bash
# Befehl ausführen
docker exec webserver ls /var/www
# Als anderer Benutzer
docker exec -u www-data -it webserver bash
# Datei in Container kopieren
docker cp localfile.txt webserver:/path/in/container/
# Datei aus Container kopieren
docker cp webserver:/path/in/container/file.txt ./Container-Änderungen
# Änderungen am Dateisystem
docker diff webserver
# Container als Image speichern
docker commit webserver my-nginx:custom
# Mit Commit-Message
docker commit -m "Added custom config" webserver my-nginx:customVolumes
Volumes verwalten
# Volumes auflisten
docker volume ls
# Volume erstellen
docker volume create mydata
# Volume-Details
docker volume inspect mydata
# Volume löschen
docker volume rm mydata
# Alle ungenutzten Volumes löschen
docker volume pruneVolumes verwenden
# Named Volume
docker run -d -v mydata:/data nginx
# Bind Mount (Host-Verzeichnis)
docker run -d -v /host/path:/container/path nginx
# Read-only
docker run -d -v /host/path:/container/path:ro nginx
# tmpfs (nur RAM)
docker run -d --tmpfs /tmp nginxNetzwerke
Netzwerke verwalten
# Netzwerke auflisten
docker network ls
# Netzwerk erstellen
docker network create mynetwork
# Mit Subnet
docker network create --subnet=172.18.0.0/16 mynetwork
# Netzwerk-Details
docker network inspect mynetwork
# Netzwerk löschen
docker network rm mynetwork
# Ungenutzte Netzwerke löschen
docker network pruneContainer mit Netzwerk
# Container mit Netzwerk starten
docker run -d --network mynetwork nginx
# Container zu Netzwerk hinzufügen
docker network connect mynetwork webserver
# Container aus Netzwerk entfernen
docker network disconnect mynetwork webserverDocker Compose (kurz)
# Container starten
docker compose up -d
# Container stoppen
docker compose down
# Mit Volumes löschen
docker compose down -v
# Logs
docker compose logs -f
# Neustarten
docker compose restart
# Einzelnen Service
docker compose up -d nginxDockerfile bauen
# Image bauen
docker build -t myimage:tag .
# Mit anderem Dockerfile
docker build -t myimage:tag -f Dockerfile.prod .
# Ohne Cache
docker build --no-cache -t myimage:tag .
# Build-Argument übergeben
docker build --build-arg VERSION=1.0 -t myimage:tag .Registry
# Bei Registry anmelden
docker login
docker login registry.example.com
# Image pushen
docker push myregistry.com/myimage:tag
# Abmelden
docker logoutNützliche Kombinationen
Alle Container stoppen und löschen
docker stop $(docker ps -aq) && docker rm $(docker ps -aq)Alle Images löschen
docker rmi $(docker images -q)Shell in neusten Container
docker exec -it $(docker ps -q -l) bashContainer-IPs anzeigen
docker inspect -f '{{.Name}} - {{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -q)Image-Größen sortiert
docker images --format "{{.Size}}\t{{.Repository}}:{{.Tag}}" | sort -hZusammenfassung
| Aufgabe | Befehl | |---------|--------| | Container starten | docker run -d --name x image | | Container auflisten | docker ps -a | | Container stoppen | docker stop x | | Container löschen | docker rm x | | Logs anzeigen | docker logs -f x | | Shell öffnen | docker exec -it x bash | | Images auflisten | docker images | | Image herunterladen | docker pull image:tag | | Image löschen | docker rmi image | | Aufräumen | docker system prune -a |
Fazit
Diese Befehle decken 95% der täglichen Docker-Arbeit ab. Die wichtigsten sind run, ps, logs, exec und stop. Für komplexere Setups ist Docker Compose empfehlenswert. Räumen Sie regelmäßig mit docker system prune auf, um Speicherplatz zu sparen.