Docker не запускается

Доброе утро, ребята, я новичок в docker, поэтому я не знаю многого, но мне нужно установить его. У меня VPS хостинг на GoDaddy, я установил docker следуя этому руководству и когда я пытаюсь запустить docker я получаю ошибку:

Job for docker.service failed because the control process exited with код ошибки. См. "systemctl status docker.service" и "journalctl -xe". для подробностей.

Выполнив systemctl status docker.service я получаю следующий результат:

[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.

Выполнив journalctl -xe я получаю следующий результат:

[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)

Я проследил за некоторыми сообщениями людей с такой же ошибкой, все, что я делаю, работает. Мне удалось получить другой результат, выполнив dockerd --debug, он останавливается на следующей строке и мне нужно прервать команду:

INFO[2020-01-29T07:14:39.129935890-07:00] API listen on /var/run/docker.sock

После этого, если я выполню systemctl start docker, он застревает без отдачи и мне снова нужно прервать команду, затем после этого я проверяю статус с помощью 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: 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...

Следуя другим советам, я выполнил команду dockerd и получил результат:

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

Тогда я удалил .pid файл и результат изменился на:

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

И после этого я не смог перейти ни к чему другому, я уже переустановил docker около 2 раз и все еще ничего. Кто-нибудь может мне помочь? Я использую дистрибутив CentOS 7.

0
задан 29 January 2020 в 19:37
2 ответа

Удалите файлы из /var/lib/docker. а затем перезапустите службу Docker. Создайте резервную копию изображений, так как удаление папки приведет к удалению данных вашего изображения.

1
ответ дан 14 August 2020 в 17:23

У меня была похожая ошибка. Проблема была в /etc/systemd/system/docker.service.d/godaddy.conf, там находится команда для запуска скрипта для настройки сети и iptables: ExecStartPost=/opt/ godaddy/docker/configure-snat.

И в этом файле скрипта в моем случае не работали именно эти 2 строки:

...
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}

Проблема была с переменной ${PUBLIC_IP}, которая по какой-то причине была пустой, а сгенерированный скрипт закончился на -- слишком , что неверно, потому что -- слишком требует аргумента. Итак, это создало ошибку, и мой докер не запустился.

Так что проблема была не в самом докере. После того, как я прокомментировал эту строку: #ExecStartPost=/opt/godaddy/docker/configure-snat в /etc/systemd/system/docker.service.d/godaddy.conf. Проблема решена. Докер запустился без проблем, в моем случае.

3
ответ дан 16 August 2020 в 22:18

Теги

Похожие вопросы