Häufige Docker-Probleme

Container startet nicht

# Status anzeigen
docker compose ps

Logs prüfen

docker logs CONTAINER_NAME --tail 50

Events prüfen

docker events --since 10m | head -20

ENV-Variable wird nicht übernommen

Problem: .env Datei wird nicht geladen obwohl vorhanden.

# Prüfen was im Container wirklich drin ist
docker exec dreylo-profile-api env | grep VARIABLE_NAME

Container komplett neu erstellen erzwingen

docker compose stop dreylo-profile-api docker compose rm -f dreylo-profile-api docker compose up -d dreylo-profile-api
Achtung: Bei environment: im compose.yml wird die .env Datei ignoriert!
Entweder env_file: verwenden ODER environment: – nicht beides für dieselbe Variable.

Build schlägt fehl (cached)

# Ohne Cache neu bauen
docker build --no-cache -t IMAGE_NAME .

Oder via compose

docker compose build --no-cache SERVICE_NAME

Container kann anderen Container nicht erreichen

# Netzwerk prüfen
docker network inspect stoat_default | grep -A5 "Name"

Verbindung testen

docker exec CONTAINER wget -qO- http://TARGET_CONTAINER:PORT/health 2>&1

Typische Ursachen:

1. Container in unterschiedlichen Netzwerken

2. Falscher Port (compose.yml vs. tatsächlicher Port)

3. Service noch nicht gestartet

Port-Konflikte

# Welcher Prozess nutzt Port X?
ss -tlnp | grep :PORT
lsof -i :PORT

MongoDB Connection Failed

# MongoDB-Status prüfen
docker logs stoat-database-1 --tail 20

Verbindung testen

docker exec stoat-database-1 mongosh --eval "db.runCommand({ping:1})"

Von anderem Container aus testen

docker exec dreylo-profile-api wget -qO- http://database:27017 2>&1