Zum Inhalt springen
SDETRole
SDETRole

Glossar · CI/CD und DevOps

Docker-Container

Englisch: Docker container

Auch genannt: Docker-Image, Docker Image, Docker-Container für Tests, Container

Definition

Eine laufende, isolierte Instanz eines Docker-Images, die eine App oder einen Service samt Abhängigkeiten verpackt und sich auf Laptop und CI gleich verhält.

Ein Docker-Container ist ein Prozess, der aus einem Docker-Image gestartet und vom Rest der Maschine isoliert wird: Er hat ein eigenes Dateisystem, eine eigene Netzwerkschnittstelle und eine eigene Prozessliste, teilt sich aber den Kernel des Hosts. Das Image ist die schreibgeschützte Vorlage (eine Betriebssystem-Basisschicht, Laufzeitumgebungen, Ihre App); der Container ist eine laufende Instanz davon. Sie können aus einem Image viele Container starten und sie wegwerfen, wenn Sie fertig sind.

Beispiel

Einen Wegwerf-Selenium-Chrome-Node und eine Postgres-Datenbank für lokale Testläufe starten:

docker run --rm -d --name chrome -p 4444:4444 --shm-size=2g selenium/standalone-chrome:latest
docker run --rm -d --name db -p 5432:5432 -e POSTGRES_PASSWORD=test postgres:16-alpine

docker ps          # list running containers
docker logs db     # read a container's output
docker stop chrome db

--rm löscht den Container, wenn er stoppt, -d lässt ihn im Hintergrund laufen und -p host:container veröffentlicht einen Port. In echten Projekten pinnen Sie Image-Tags (zum Beispiel postgres:16.4-alpine) statt latest zu verwenden, damit ein neues Upstream-Release Ihre Testumgebung nicht über Nacht verändert.

Warum Tester Container nutzen

  • Reproduzierbare Umgebungen. Dasselbe Image läuft auf jedem Laptop und jedem CI-Runner, was eine ganze Klasse von „Bei mir läuft’s“-Fehlern beseitigt.
  • Wegwerf-Abhängigkeiten. Eine frische Datenbank pro Testlauf bedeutet keine Datenreste vom gestrigen Lauf.
  • Parallele Browser. Mit Selenium Grid und Browser-Images skalieren Sie Nodes per Befehl hoch und runter.
  • Die Testsuite selbst ausführen. Playwright veröffentlicht offizielle Images mit vorinstallierten Browsern und Systembibliotheken, was Fehler durch fehlende Abhängigkeiten auf CI-Agents vermeidet.

Unterschied zur virtuellen Maschine

Eine VM emuliert eine komplette Maschine mit eigenem Kernel und ist daher schwerer und startet langsamer. Ein Container teilt sich den Host-Kernel, startet in Sekunden und braucht deutlich weniger Speicher. Der Preis ist eine schwächere Isolation, die für Sicherheitsgrenzen relevant ist, für Testumgebungen aber selten.

Häufige Fehler

Testdaten im Container ablegen und erwarten, dass sie einen Neustart überleben (dafür gibt es Volumes), latest-Tags verwenden und bei Browser-Containern --shm-size vergessen, wodurch Chrome unter Last abstürzt.

Tippen Sie, um SDETRole zu durchsuchen.

Volltextsuche mit Pagefind · läuft in Ihrem Browser Suchseite öffnen →