Docker für den Schnellstart: Container in 10 Minuten

„Läuft bei mir" – dieser Satz ist der Klassiker unter Entwicklern. Docker beendet das Problem, indem es Anwendungen samt Umgebung in Container verpackt. Einmal gebaut, läuft ein Container überall gleich: auf dem Laptop, dem Server oder in der Cloud.

Container und Images

Zwei Begriffe stehen am Anfang:

  • Ein Image ist die Vorlage – eine Art Bauplan der Anwendung inklusive Betriebssystem-Basis, Code und Abhängigkeiten.
  • Ein Container ist die laufende Instanz eines Images.

Aus einem Image lassen sich beliebig viele Container starten, und ein Vergleich zur Objektorientierung drängt sich auf: Das Image ist die Klasse, der Container das Objekt.

Das erste Image

Das Testen beginnt direkt in der Shell. Das offizielle Nginx-Image startet einen Webserver mit einer Zeile:

docker run -d -p 8080:80 nginx

Danach ist der Server unter http://localhost:8080 erreichbar. Die Parameter im Einzelnen:

  • -d startet den Container im Hintergrund
  • -p 8080:80 verbindet den Host-Port 8080 mit dem Container-Port 80

Wichtige Docker-Befehle

Die häufigsten Befehle im Überblick:

Befehl Wirkung
docker ps Laufende Container anzeigen
docker ps -a Alle Container, auch gestoppte
docker images Lokale Images auflisten
docker stop <name> Container stoppen
docker rm <name> Container löschen
docker rmi <image> Image löschen
docker logs <name> Ausgaben des Containers anzeigen
docker exec -it <name> sh Shell im laufenden Container öffnen

Das eigene Image bauen

Ein eigenes Image wird über ein Dockerfile definiert. Ein minimales Beispiel für eine Python-Anwendung:

FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]

Der Bau und Start erfolgen dann so:

docker build -t meine-app .
docker run -p 5000:5000 meine-app

Jede Zeile im Dockerfile erzeugt eine Ebene im Image. Das sorgt dafür, dass sich nur Geändertes neu baut – und macht COPY-Zeilen im Dockerfile zu den wichtigsten Hebel für schnelle Builds.

Daten dauerhaft speichern

Container sind wegwerfbar: Stoppt man sie, gehen darin geschriebene Dateien verloren. Volumes lösen das:

docker run -d -v daten:/var/lib/mysql mysql:8

Das benannte Volume daten überlebt, auch wenn der Container gelöscht wird. Alternativ bindet man mit -v /pfad/auf/host:/pfad/im/container ein echtes Verzeichnis ein.

Fazit

Docker wirkt mit seinen vielen Konzepten zunächst groß, aber der Einstieg ist klein: ein Image, ein docker run, ein Dockerfile. Wer diese drei Dinge verstanden hat, hat die wichtigste Hürde genommen – der Rest ist Detailwissen, das sich bei Bedarf ergänzen lässt.