docker verpackt Anwendungen samt aller Abhängigkeiten in sogenannte Container — leichtgewichtige, isolierte Umgebungen, die auf jedem System gleich laufen. Ein Image ist die Vorlage, ein Container die laufende Instanz davon.
Images und erste Container
docker pull nginx
docker run -d -p 8080:80 nginx
docker pull lädt ein Image aus der Docker Hub Registry. docker run startet daraus einen Container: -d (detached) im Hintergrund, -p 8080:80 leitet den Host-Port 8080 auf den Container-Port 80 um.
docker images— alle lokal vorhandenen Imagesdocker ps— laufende Container (-aauch gestoppte)docker stop <name>/docker start <name>— Container stoppen und wieder startendocker rm <name>— Container endgültig löschendocker rmi <image>— Image löschen
In Container hineinschauen
docker exec -it <name> bash
Öffnet eine Shell im laufenden Container (-it = interaktiv mit Terminal). Nützlich zum Debuggen. Logs zeigt docker logs <name>.
Docker Compose: mehrere Container definieren
docker compose up -d
Mit einer docker-compose.yml lassen sich mehrere Dienste (Webserver, Datenbank, Cache) zusammen definieren und mit einem Befehl starten. docker compose down stoppt alles, docker compose logs -f zeigt die Logs aller Dienste.
Praxis-Tipp
Container sind standardmäßig wegwerfbar — Daten gehören in Volumes: docker run -v mein_volume:/var/lib/mysql .... Mit docker system df sieht man, wie viel Speicher Images und Container belegen, und docker system prune entfernt ungenutzte Objekte.
Verwandte Grundlagen: Dienste mit systemctl verwalten und Prozesse mit ps, top und kill.