Kernkonzepte
Image Unveränderliche Vorlage (Bauplan) für einen Container. Wird aus einem Dockerfile gebaut.
Container Laufende Instanz eines Images. Isolierter Prozess mit eigenem Dateisystem, Netzwerk, RAM.
Volume Persistenter Datenspeicher ausserhalb des Containers. Überlebt Container-Neustart / -Löschung.
Network Virtuelles Netzwerk. Container im selben Netzwerk erreichen sich per Name (DNS).
Container-Lifecycle
docker run -d -p 8080:80 nginx starten Image pullen + Container im Hintergrund starten, Port mappen docker ps info Laufende Container anzeigen docker ps -a info Alle Container (auch gestoppte) docker stop <id/name> stopp Container sauber beenden (SIGTERM → SIGKILL) docker kill <id/name> stopp Sofort beenden (SIGKILL) docker rm <id/name> löschen Gestoppten Container entfernen docker rm -f <id/name> löschen Erzwingen, auch wenn laufend
Logs & Debug
docker logs <id> info Logs ausgeben docker logs -f <id> info Logs live folgen docker exec -it <id> bash debug Shell im laufenden Container öffnen docker inspect <id> info Alle Details als JSON
Images
docker images info Lokale Images auflisten docker pull nginx:alpine Image herunterladen docker build -t myapp:1.0 . Image aus aktuellem Verzeichnis bauen docker rmi <image> löschen Image löschen
Volumes
docker volume ls info Alle Volumes auflisten docker volume inspect <name> info Details (Pfad auf Host etc.) docker volume rm <name> löschen Volume löschen (nur wenn kein Container es nutzt) docker volume prune löschen Alle ungenutzten Volumes löschen
Networks
docker network ls info Alle Netzwerke auflisten docker network inspect <name> info Details + welche Container drin sind docker network create <name> erstellen Neues Bridge-Netzwerk erstellen docker network rm <name> löschen Netzwerk löschen docker network connect <net> <id> Laufenden Container zu Netzwerk hinzufügen
Aufräumen
docker system prune löschen Gestoppte Container, ungenutzte Images, Netzwerke entfernen docker system prune -a löschen Wie oben + alle nicht verwendeten Images
Docker Compose – wozu?
Ein Tool, das mehrere Container als eine Einheit definiert und startet. Du beschreibst alles in einer docker-compose.yml (Services, Volumes, Netzwerke) und startest alles mit einem Befehl. Ohne Compose müsstest du jeden Container einzeln mit docker run + langen Flags starten, Netzwerke manuell verbinden und bei Neustart alles von Hand wiederholen.
YAML Copy services :
wordpress :
image : wordpress
ports : [ "8080:80" ]
depends_on : [ db ]
db :
image : mariadb
volumes :
- db_data:/var/lib/mysql
volumes :
db_data :
Befehl Was passiert docker compose up -dAlles starten docker compose downAlles stoppen + Container entfernen docker compose down -v+ Volumes löschen docker compose logs -fLogs aller Services docker compose psStatus aller Services
docker ps — Kurzreferenz
Bash Copy CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a1b2c3d4e5f6 nginx … 5 m ago Up 5 m 0.0 .0.0:8080 - > 80/tcp my_nginx
CONTAINER ID — die ersten 12 Zeichen der ID, reicht für alle Befehle
STATUS — Up = läuft, Exited (0) = sauber gestoppt, Exited (1) = Fehler
Du kannst überall die ersten paar ID-Zeichen nehmen: docker stop a1b2
Container beenden — welche Methode?
Situation Befehl Normaler Stopp docker stop <id>Hängt / reagiert nicht docker kill <id>Stopp + gleich löschen docker rm -f <id>Alles via Compose docker compose down
stop gibt dem Prozess 10 Sekunden zum sauberen Beenden, dann SIGKILL. Für WP-Container immer stop bevorzugen.