LINUX.ORG.RU
ФорумAdmin

Не стартует docker.service, но нормально стартует dockerd

 


0

3

Здравствуйте.

При попытке запустить docker из systemd (sudo systemctl start docker) вижу такую ошибку:

Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xe" for details.

systemctl status docker.service:

● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/docker.service.d
             └─DeviceMapper.conf
     Active: failed (Result: exit-code) since Thu 2025-02-20 06:22:08 UTC; 16s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
    Process: 9620 ExecStart=/usr/bin/dockerd --storage-driver=devicemapper -H fd:// (code=exited, status=1/FAILURE)
   Main PID: 9620 (code=exited, status=1/FAILURE)

фев 20 06:22:08 nextcloud systemd[1]: docker.service: Scheduled restart job, restart counter is at 3.
фев 20 06:22:08 nextcloud systemd[1]: Stopped Docker Application Container Engine.
фев 20 06:22:08 nextcloud systemd[1]: docker.service: Start request repeated too quickly.
фев 20 06:22:08 nextcloud systemd[1]: docker.service: Failed with result 'exit-code'.
фев 20 06:22:08 nextcloud systemd[1]: Failed to start Docker Application Container Engine.

journalctl -u docker:

фев 20 06:22:06 nextcloud systemd[1]: docker.service: Scheduled restart job, restart counter is at 2.
фев 20 06:22:06 nextcloud systemd[1]: Stopped Docker Application Container Engine.
фев 20 06:22:06 nextcloud systemd[1]: Starting Docker Application Container Engine...
фев 20 06:22:06 nextcloud dockerd[9620]: time="2025-02-20T06:22:06.193766418Z" level=info msg="Starting up"
фев 20 06:22:06 nextcloud dockerd[9620]: time="2025-02-20T06:22:06.195506861Z" level=info msg="detected 127.0.0.53 nameserver, assuming systemd-resolved, so using resolv.conf: /run/systemd/resolve/resolv.conf"
фев 20 06:22:06 nextcloud dockerd[9620]: time="2025-02-20T06:22:06.246237100Z" level=info msg="[graphdriver] trying configured driver: devicemapper"
фев 20 06:22:06 nextcloud dockerd[9620]: failed to start daemon: error initializing graphdriver: [graphdriver] ERROR: the devicemapper storage-driver has been deprecated and removed; visit https://docs.docker.com/go/storage-driver/ for more information: devicemapper
фев 20 06:22:06 nextcloud dockerd[9620]: time="2025-02-20T06:22:06.248601425Z" level=info msg="stopping event stream following graceful shutdown" error="context canceled" module=libcontainerd namespace=plugins.moby
фев 20 06:22:06 nextcloud systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE
фев 20 06:22:06 nextcloud systemd[1]: docker.service: Failed with result 'exit-code'.
фев 20 06:22:06 nextcloud systemd[1]: Failed to start Docker Application Container Engine.

Если идти на https://docs.docker.com/go/storage-driver/, то там рассказывается, как сменить storage driver (у меня lvm, если вдруг это важно), файла /etc/docker/daemon.json у меня нет, я вообще не нашел, где лежит конфиг докера.

Однако, в то же время, если запустить

sudo dockerd

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

Проблема возникла на этой неделе, до этого docker.service нормально стартовал при запуске системы и сам запускал нужные контейнеры/

Ubuntu 20.04.6 LTS (GNU/Linux 5.4.0-205-generic x86_64) Расширенное поддержание безопасности (ESM) для Applications включено.

Ответ на: комментарий от FireFighter
Edit /etc/docker/daemon.json. If it does not yet exist, create it. Assuming that the file was empty, add the following contents.

У меня нет этого файла (см. оп-пост), а если новый создаю, там другая ругалка вылазит, позже скину точный лог, но суть примерно что в daemon.json указано одно, а по факту используется другое

stiflerwen
() автор топика
Последнее исправление: stiflerwen (всего исправлений: 1)

У вас строка запуска dockerd в systemd unit имеет опцию --storage-driver=devicemapper, из-за которой и проблема.

Эта опция была добавлена в дополняющем файле (drop-in), лежащем по пути /etc/systemd/system/docker.service.d/DeviceMapper.conf

Посмотрите его содержимое и, возможно, удалите (он не входит в стандартную поставку, его вы либо создали вручную, либо какой-то скрипт/программа создала при настройке), или модифицируйте, согласно вашим требованиям. Далее выполните systemctl daemon-reload, и всё заработает.

ValdikSS ★★★★★
()
Последнее исправление: ValdikSS (всего исправлений: 1)