Einige der in diesem Beitrag geteilten Links sind Affiliate-Links. Wenn du auf den Link klickst und etwas kaufst, erhalten wir eine Affiliate-Provision ohne zusätzliche Kosten für dich.
Beim Ausführen oder Starten von Docker-Containern treten häufig verschiedene Fehler auf. Diese Fehler können durch fehlerhafte Konfigurationen, fehlende Abhängigkeiten, Netzwerkprobleme oder fehlerhafte Docker-Images verursacht werden. Hier sind die häufigsten Fehler und mögliche Lösungen:
1. Image Not Found
- Beschreibung: Der angegebene Image-Name oder Tag ist falsch oder existiert nicht in der Docker-Registry.
- Fehlermeldung:
Error response from daemon: pull access denied for <image>, repository does not exist or may require 'docker login'
- Lösung: Stelle sicher, dass der Image-Name korrekt ist, inklusive des richtigen Tags (z.B.
nginx:latest
). Wenn es sich um ein privates Image handelt, melde dich mitdocker login
an.
2. Port Already in Use
- Beschreibung: Der angegebene Host-Port ist bereits durch einen anderen Prozess oder Container belegt.
- Fehlermeldung:
Error response from daemon: driver failed programming external connectivity on endpoint <container_name>: Bind for 0.0.0.0:<port> failed: port is already allocated
- Lösung: Überprüfe, welcher Prozess den Port verwendet, indem du den Befehl
sudo lsof -i :<port>
ausführst, und ändere entweder den Port des laufenden Prozesses oder den des neuen Containers.
3. Container Exited Immediately After Starting
- Beschreibung: Der Container startet, aber der Hauptprozess beendet sich sofort.
- Fehlermeldung:
Exited (0)
oderExited (1)
- Lösung: Überprüfe den Docker-Container-Log mit
docker logs <container_name>
, um zu sehen, was schiefgelaufen ist. Möglicherweise fehlt eine Umgebungsvariable oder eine Abhängigkeit. Stelle sicher, dass der in der Dockerfile definierteCMD
– oderENTRYPOINT
-Befehl korrekt ist.
4. Permission Denied Fehler
- Beschreibung: Der Container oder das Host-System hat nicht die notwendigen Berechtigungen für eine Aktion.
- Fehlermeldung:
permission denied
,EACCES: permission denied, mkdir
- Lösung: Stelle sicher, dass die Dateisystemberechtigungen richtig gesetzt sind. Nutze
sudo chown
oderchmod
, um Zugriffsrechte zu konfigurieren. Setze--privileged
oder--user
-Flags in Docker nur als letzte Möglichkeit.
5. Cannot Connect to Docker Daemon
- Beschreibung: Docker-Client kann keine Verbindung zum Docker-Daemon herstellen.
- Fehlermeldung:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
- Lösung: Stelle sicher, dass Docker installiert und der Docker-Daemon gestartet ist. Nutze
sudo systemctl start docker
odersudo service docker start
. Prüfe die Berechtigungen für den Docker-Socket.
6. Network Connectivity Issues
- Beschreibung: Container können keine Verbindung zu externen Netzwerken oder zum Host herstellen.
- Fehlermeldung:
Could not resolve host
,network not found
- Lösung: Stelle sicher, dass das Netzwerk korrekt definiert ist. Prüfe die Netzwerk-Konfiguration in
docker-compose.yml
oder nutzedocker network ls
, um sicherzustellen, dass das erforderliche Netzwerk vorhanden ist.
7. Volume Mounting Errors
- Beschreibung: Fehler bei der Bereitstellung von Volumes, weil Pfade falsch oder nicht vorhanden sind.
- Fehlermeldung:
Error response from daemon: invalid mount config for type "bind": bind source path does not exist
- Lösung: Überprüfe, ob der Host-Pfad existiert und richtig formatiert ist. Achte auf den absoluten Pfad und darauf, dass er mit
/
beginnt.
8. Out of Memory (OOM)
- Beschreibung: Der Container oder Host läuft aufgrund von Ressourcenbeschränkungen oder speicherintensiven Anwendungen aus dem Arbeitsspeicher.
- Fehlermeldung:
Killed
oderOOMKilled
- Lösung: Weise mehr Speicher zu oder limitiere den Speicherverbrauch des Containers mit
--memory
-Flag (z.B.--memory="1g"
). Prüfe den Host-Speicher mitfree -m
.
9. Docker Daemon Configuration Issues
- Beschreibung: Fehlerhafte Konfiguration des Docker-Daemons kann verhindern, dass Container ausgeführt werden.
- Fehlermeldung: Verschiedene, je nach Konfigurationsfehler.
- Lösung: Überprüfe und bearbeite die Konfigurationsdatei
/etc/docker/daemon.json
. Nutzedocker info
unddocker logs
für weitere Diagnosen. Starte den Daemon neu mitsudo systemctl restart docker
.
10. Conflict Error
- Beschreibung: Konflikt aufgrund eines vorhandenen Containers oder Images mit demselben Namen oder Tag.
- Fehlermeldung:
Conflict: The container name "/<container_name>" is already in use by container "<container_id>"
- Lösung: Entferne den vorhandenen Container oder benenne den neuen Container anders. Verwende
docker rm <container_name>
oderdocker rename
.
Diese häufigen Docker-Fehler können durch sorgfältige Überprüfung der Logs, der Konfigurationsdateien und der laufenden Prozesse auf dem Host-System identifiziert und behoben werden. Fehlerhafte Volumes, Images oder Netzwerkkonfigurationen lassen sich durch genauere Definitionen und Korrekturen in den docker-compose.yml
oder Docker-Befehlen lösen.