Wenn ein Container beim Start hängt oder sofort abbricht, liegt das meistens an einem fehlerhaften Einstiegspunkt im Dockerfile oder an fehlenden Umgebungsvariablen. Zuerst 'docker logs <container-id>' ausführen – die Ausgabe zeigt fast immer, wo genau es hakt. Häufige Ursache: das Basisimage erwartet eine Variable wie DATABASE_URL, die in der docker-compose.yml nicht gesetzt ist.
Beim 'docker build' schlägt der Prozess fehl, wenn Abhängigkeiten nicht auflösbar sind oder der Cache inkonsistent geworden ist. Hilfreich ist '--no-cache' als Flag, um einen sauberen Build zu erzwingen. Auch Tippfehler in COPY-Pfaden oder falsche Schreibweise von Paketnamen in RUN-Befehlen sind klassische Stolperstellen.
Der Fehler 'port is already allocated' bedeutet, dass ein anderer Prozess den gewünschten Port bereits hält. Mit 'lsof -i :<port>' oder 'netstat -tulpn' lässt sich herausfinden, welches Programm blockiert. Danach entweder den Prozess beenden oder in der Compose-Datei einen anderen Host-Port zuweisen.
Wenn nach einem Container-Neustart Daten fehlen, wurde wahrscheinlich kein persistentes Volume definiert. Anonyme Volumes werden beim 'docker rm' gelöscht. Lösung: benannte Volumes in der Compose-Datei anlegen und sicherstellen, dass der Pfad im Container korrekt auf das Volume zeigt.
Docker Desktop begrenzt standardmäßig RAM und CPU für die VM. Unter Einstellungen – Ressourcen lassen sich die Limits anpassen. Laufen viele alte Images und gestoppte Container auf dem System, hilft 'docker system prune' dabei, Speicherplatz freizugeben und die Gesamtlast zu reduzieren.
Bei Problemen mit 'docker login' zu Docker Hub oder einer privaten Registry zuerst prüfen, ob das Token noch gültig ist. Credentials werden im System-Keystore gespeichert – ein beschädigter Eintrag lässt sich durch manuelles Löschen der Datei '~/.docker/config.json' beheben, danach neu anmelden.