Docker Befehle
Docker Befehle – Cheatsheet
Schnellreferenz für Docker und Docker Compose.
🐳 Container
Starten & Stoppen
docker run IMAGE # Container starten
docker run -d IMAGE # Im Hintergrund (detached)
docker run -it IMAGE bash # Interaktiv mit Shell
docker run --name NAME IMAGE # Mit Namen
docker run -p 8080:80 IMAGE # Port-Mapping
docker run -v /host:/container IMG # Volume einbinden
docker run --rm IMAGE # Nach Stop löschen
docker start NAME # Gestoppten starten
docker stop NAME # Stoppen (graceful)
docker restart NAME # Neustarten
docker kill NAME # Sofort beenden
Verwalten
docker ps # Laufende Container
docker ps -a # Alle (auch gestoppte)
docker rm NAME # Container löschen
docker rm -f NAME # Stoppen + Löschen
docker container prune # Alle gestoppten löschen
Interagieren
docker exec -it NAME bash # Shell im Container
docker exec NAME befehl # Befehl ausführen
docker logs NAME # Logs anzeigen
docker logs -f NAME # Live-Logs
docker logs --tail 100 NAME # Letzte 100 Zeilen
docker inspect NAME # Container-Details
docker stats # Ressourcen-Nutzung
docker top NAME # Prozesse im Container
📦 Images
docker images # Lokale Images
docker pull IMAGE:TAG # Image laden
docker push IMAGE:TAG # Image hochladen
docker rmi IMAGE # Image löschen
docker image prune # Ungenutzte löschen
docker image prune -a # ALLE ungenutzten
docker build -t NAME . # Image bauen
docker build -t NAME:TAG . # Mit Tag
docker tag IMAGE NEUER_NAME # Umbenennen/Taggen
docker save IMAGE > image.tar # Als Datei exportieren
docker load < image.tar # Aus Datei laden
💾 Volumes
docker volume ls # Alle Volumes
docker volume create NAME # Erstellen
docker volume rm NAME # Löschen
docker volume prune # Ungenutzte löschen
docker volume inspect NAME # Details
# In Container nutzen
docker run -v NAME:/pfad IMAGE # Benanntes Volume
docker run -v /host:/container IMG # Bind Mount
🌐 Netzwerke
docker network ls # Alle Netzwerke
docker network create NAME # Erstellen
docker network rm NAME # Löschen
docker network inspect NAME # Details
docker network connect NET NAME # Container verbinden
docker network disconnect NET NAME # Container trennen
🧹 Aufräumen
docker system df # Speichernutzung
docker system prune # Ungenutzte Objekte
docker system prune -a # + alle ungenutzten Images
docker system prune --volumes # + Volumes
# Einzeln
docker container prune # Gestoppte Container
docker image prune # Ungenutzte Images
docker volume prune # Ungenutzte Volumes
docker network prune # Ungenutzte Netzwerke
🐙 Docker Compose
Grundbefehle
docker-compose up # Starten
docker-compose up -d # Im Hintergrund
docker-compose up --build # Mit Neu-Build
docker-compose down # Stoppen + Entfernen
docker-compose down -v # + Volumes löschen
docker-compose start # Gestoppte starten
docker-compose stop # Stoppen
docker-compose restart # Neustarten
Verwalten
docker-compose ps # Status
docker-compose logs # Alle Logs
docker-compose logs -f # Live-Logs
docker-compose logs SERVICE # Logs eines Services
docker-compose exec SERVICE bash # Shell in Service
docker-compose exec SERVICE CMD # Befehl ausführen
docker-compose pull # Images aktualisieren
docker-compose build # Images neu bauen
docker-compose config # Config prüfen
Skalieren
docker-compose up -d --scale web=3 # 3 Instanzen
📋 Nützliche Kombinationen
# Alle Container stoppen
docker stop $(docker ps -q)
# Alle Container löschen
docker rm $(docker ps -aq)
# Alle Images löschen
docker rmi $(docker images -q)
# Container-Logs in Datei
docker logs NAME > container.log 2>&1
# Image-Größen sortiert
docker images --format "{{.Size}}\t{{.Repository}}" | sort -h
# Container-IP finden
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' NAME
🏗️ Dockerfile Referenz
FROM ubuntu:22.04 # Basis-Image
WORKDIR /app # Arbeitsverzeichnis
COPY . /app # Dateien kopieren
RUN apt-get update # Befehl ausführen
ENV NODE_ENV=production # Umgebungsvariable
EXPOSE 3000 # Port dokumentieren
USER appuser # Als Benutzer ausführen
CMD ["node", "app.js"] # Start-Befehl
ENTRYPOINT ["python"] # Fester Einstiegspunkt
📄 docker-compose.yml Referenz
version: '3.8'
services:
web:
image: nginx:alpine
# oder: build: ./dir
container_name: webserver
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
environment:
- NODE_ENV=production
env_file:
- .env
depends_on:
- db
restart: unless-stopped
networks:
- frontend
db:
image: mysql:8
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: geheim
networks:
- frontend
volumes:
db_data:
networks:
frontend: