
Guten Morgen Leute, ich bin ein Anfänger mit dem Docker, also weiß ich nicht viel, aber ich muss es installieren. Ich habe ein VPS-Hosting bei GoDaddy, ich habe den Docker wie folgt installiertdieser Leitfadenund wenn ich versuche, den Docker zu starten, erhalte ich die Fehlermeldung:
Der Job für docker.service ist fehlgeschlagen, da der Kontrollprozess mit einem Fehlercode beendet wurde. Weitere Informationen finden Sie unter „systemctl status docker.service“ und „journalctl -xe“.
Beim Ausführen systemctl status docker.service
erhalte ich das folgende Ergebnis:
[root@ip-107-180-94-5 ~]# systemctl status docker.service -l
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/docker.service.d
└─godaddy.conf
Active: failed (Result: start-limit) since Wed 2020-01-29 06:49:01 MST; 4min 1s ago
Docs: https://docs.docker.com
Process: 3708 ExecStartPost=/opt/godaddy/docker/configure-snat (code=exited, status=2)
Process: 3571 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=0/SUCCESS)
Main PID: 3571 (code=exited, status=0/SUCCESS)
Jan 29 06:48:59 ip-107-180-94-5.ip.secureserver.net systemd[1]: Failed to start Docker Application Container Engine.
Jan 29 06:48:59 ip-107-180-94-5.ip.secureserver.net systemd[1]: Unit docker.service entered failed state.
Jan 29 06:48:59 ip-107-180-94-5.ip.secureserver.net systemd[1]: docker.service failed.
Jan 29 06:49:01 ip-107-180-94-5.ip.secureserver.net systemd[1]: docker.service holdoff time over, scheduling restart.
Jan 29 06:49:01 ip-107-180-94-5.ip.secureserver.net systemd[1]: Stopped Docker Application Container Engine.
Jan 29 06:49:01 ip-107-180-94-5.ip.secureserver.net systemd[1]: start request repeated too quickly for docker.service
Jan 29 06:49:01 ip-107-180-94-5.ip.secureserver.net systemd[1]: Failed to start Docker Application Container Engine.
Jan 29 06:49:01 ip-107-180-94-5.ip.secureserver.net systemd[1]: Unit docker.service entered failed state.
Jan 29 06:49:01 ip-107-180-94-5.ip.secureserver.net systemd[1]: docker.service failed.
Beim Ausführen journalctl -xe
erhalte ich das folgende Ergebnis:
[root@ip-107-180-94-5 ~]# journalctl -xe-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit user-0.slice has finished starting up.--
-- The start-up result is done.Jan 29 07:10:01 ip-107-180-94-5.ip.secureserver.net systemd[1]: Started Session 11104 of user root.-- Subject: Unit session-11104.scope has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel--
-- Unit session-11104.scope has finished starting up.
--
-- The start-up result is done.Jan 29 07:10:01 ip-107-180-94-5.ip.secureserver.net systemd[1]: Started Session 11105 of user root.
-- Subject: Unit session-11105.scope has finished start-up
-- Defined-By: systemd-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel---- Unit session-11105.scope has finished starting up.
--
-- The start-up result is done.
Jan 29 07:10:01 ip-107-180-94-5.ip.secureserver.net CROND[31560]: (root) CMD (/usr/local/cpanel/scripts/dcpumon-wr
Jan 29 07:10:01 ip-107-180-94-5.ip.secureserver.net CROND[31561]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Ich habe einige Posts von Leuten mit demselben Fehler verfolgt und festgestellt, dass alles, was ich mache, funktioniert. Ich habe es geschafft, ein anderes Ergebnis zu erzielen, indem ich ausgeführt habe dockerd --debug
. Es stoppt bei der folgenden Zeile und ich muss den Befehl abbrechen:
INFO[2020-01-29T07:14:39.129935890-07:00] API listen on /var/run/docker.sock
Wenn ich es danach ausführe, systemctl start docker
bleibt es hängen, ohne etwas zurückzugeben, und ich muss den Befehl erneut abbrechen. Danach überprüfe ich den Status und es systemctl status docker.service -l
wird das folgende Ergebnis generiert:
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/docker.service.d
└─godaddy.conf
Active: activating (start-post) since Wed 2020-01-29 07:17:17 MST; 1min 39s ago
Docs: https://docs.docker.com
Main PID: 32176 (dockerd); : 32313 (configure-snat)
Tasks: 15
Memory: 39.6M
CGroup: /system.slice/docker.service
├─32176 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
└─control
├─ 5261 sleep 0.1
└─32313 /bin/bash /opt/godaddy/docker/configure-snat
Jan 29 07:18:56 ip-107-180-94-5.ip.secureserver.net configure-snat[32313]: Cannot connect to the Docker daemon atunix:///var/run/docker.sock. Is the docker daemon running?
Jan 29 07:18:56 ip-107-180-94-5.ip.secureserver.net configure-snat[32313]: waiting for docker bridge...
Jan 29 07:18:56 ip-107-180-94-5.ip.secureserver.net configure-snat[32313]: Cannot connect to the Docker daemon atunix:///var/run/docker.sock. Is the docker daemon running?
Jan 29 07:18:56 ip-107-180-94-5.ip.secureserver.net configure-snat[32313]: waiting for docker bridge...
Jan 29 07:18:56 ip-107-180-94-5.ip.secureserver.net configure-snat[32313]: Cannot connect to the Docker daemon atunix:///var/run/docker.sock. Is the docker daemon running?
Jan 29 07:18:56 ip-107-180-94-5.ip.secureserver.net configure-snat[32313]: waiting for docker bridge...
Jan 29 07:18:56 ip-107-180-94-5.ip.secureserver.net configure-snat[32313]: Cannot connect to the Docker daemon atunix:///var/run/docker.sock. Is the docker daemon running?
Jan 29 07:18:56 ip-107-180-94-5.ip.secureserver.net configure-snat[32313]: waiting for docker bridge...
Jan 29 07:18:56 ip-107-180-94-5.ip.secureserver.net configure-snat[32313]: Cannot connect to the Docker daemon atunix:///var/run/docker.sock. Is the docker daemon running?
Jan 29 07:18:57 ip-107-180-94-5.ip.secureserver.net configure-snat[32313]: waiting for docker bridge...
Ich habe den Befehl gemäß anderen Tipps ausgeführt dockerd
und das Ergebnis generiert:
WARN[2020-01-29T07:20:27.025438855-07:00] The "graph" config file option is deprecated. Please use "data-root" instead.
INFO[2020-01-29T07:20:27.025693705-07:00] Starting up
failed to start daemon: pid file found, ensure docker is not running or delete /var/run/docker.pid
Also lösche ich die .pid-Datei und das Ergebnis ändert sich zu:
WARN[2020-01-29T07:22:44.060324431-07:00] The "graph" config file option is deprecated. Please use "data-root" instead.
INFO[2020-01-29T07:22:44.061145504-07:00] Starting up
INFO[2020-01-29T07:22:44.064401028-07:00] parsed scheme: "unix" module=grpc
INFO[2020-01-29T07:22:44.064684277-07:00] scheme "unix" not registered, fallback to default scheme module=grpc
INFO[2020-01-29T07:22:44.064771804-07:00] ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd.sock 0 <nil>}] <nil>} module=grpc
INFO[2020-01-29T07:22:44.064814177-07:00] ClientConn switching balancer to "pick_first" module=grpc
INFO[2020-01-29T07:22:44.070245283-07:00] parsed scheme: "unix" module=grpc
INFO[2020-01-29T07:22:44.070333997-07:00] scheme "unix" not registered, fallback to default scheme module=grpc
INFO[2020-01-29T07:22:44.070364847-07:00] ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd.sock 0 <nil>}] <nil>} module=grpc
INFO[2020-01-29T07:22:44.070390331-07:00] ClientConn switching balancer to "pick_first" module=grpc
WARN[2020-01-29T07:22:44.071893568-07:00] [graphdriver] WARNING: the overlay storage-driver is deprecated, and will be removed in a future release
failed to start daemon: error while opening volume store metadata database: timeout
Und danach konnte ich nichts mehr machen, ich habe den Docker bereits ungefähr 2 Mal neu installiert und immer noch nichts. Kann mir jemand helfen? Ich verwende die CentOS 7-Distribution.
Antwort1
Ich hatte einen ähnlichen Fehler. Das Problem lag in /etc/systemd/system/docker.service.d/godaddy.conf
. Dort befindet sich ein Befehl zum Ausführen eines Skripts zum Konfigurieren des Netzwerks und von iptables: ExecStartPost=/opt/godaddy/docker/configure-snat
.
Und in dieser Skriptdatei schlugen in meinem Fall genau diese beiden Zeilen fehl:
...
iptables -t nat -D POSTROUTING -s ${DOCKER_NETWORK} ! -o docker0 -j SNAT --to ${PUBLIC_IP}
iptables -t nat -I POSTROUTING -s ${DOCKER_NETWORK} ! -o docker0 -j SNAT --to ${PUBLIC_IP}
Das Problem lag bei einer Variable ${PUBLIC_IP}
, die aus irgendeinem Grund leer war und bei der das generierte Skript endete, --too
was falsch ist, da --too
ein Argument erforderlich ist. Dies führte also zu einem Fehler und mein Docker konnte nicht gestartet werden.
Das Problem lag also nicht am Docker selbst. Nachdem ich diese Zeile kommentiert hatte: #ExecStartPost=/opt/godaddy/docker/configure-snat
in /etc/systemd/system/docker.service.d/godaddy.conf
. Problem gelöst. Docker startete in meinem Fall ohne Probleme.
Antwort2
Entfernen Sie Dateien aus /var/lib/docker. Starten Sie dann den Docker-Dienst neu. Sichern Sie die Bilder, da beim Löschen des Ordners Ihre Bilddaten gelöscht werden.