Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
DOCKER_DAEMON_STARTUP_HANG Linux / DevOps

Траблшутинг медленного запуска Docker Daemon: /var/lib/docker и Debug-режим

Обновлено: 21.08.2026
  • Сервис docker.service стартует несколько минут или падает по таймауту systemd (Job for docker.service failed because a timeout was exceeded).
  • Высокая утилизация I/O диска процессом dockerd или containerd сразу после включения сервера.
  • Зависание команд docker ps и docker info после перезагрузки демона.

1. Включение режима детальной отладки (Debug Mode)

Отредактируйте /etc/docker/daemon.json:

{
  "debug": true,
  "log-level": "debug"
}

Запустите демон вручную для отслеживания блокировок в реальном времени:

systemctl stop docker docker.socket containerd
dockerd --debug

2. Анализ узких мест в журнале Systemd

journalctl -u docker.service -u containerd.service -b --no-pager | grep -Ei "timeout|failed|slow|loading"

3. Устранение проблем с поврежденными слоями overlay2

Если демон тратит время на сканирование битых контейнеров и метаданных в /var/lib/docker/containers/:

# Проверка целостности дисковой подсистемы
dmesg -T | grep -Ei "I/O error|EXT4-fs error|XFS"

# Очистка состояния неконсистентных контейнеров (после бэкапа)
mkdir -p /tmp/docker_corrupt_bak
mv /var/lib/docker/containers/* /tmp/docker_corrupt_bak/

4. Увеличение таймаута запуска службы в Systemd

Создайте переопределение /etc/systemd/system/docker.service.d/timeout.conf:

[Service]
TimeoutSec=300
systemctl daemon-reload && systemctl restart docker
Практический опыт инженера: Не используйте устаревшие файловые системы вроде devicemapper или btrfs/zfs без явной необходимости. Стандартный драйвер overlay2 на файловой системе ext4/xfs с флагом d_type=true обеспечивает максимальную скорость инициализации.

Частые вопросы (FAQ)

Почему dockerd долго сканирует /var/lib/docker при старте?

Если на сервере накоплены десятки тысяч неиспользуемых слоев, анонимных томов и остановленных контейнеров, драйвер overlay2 при старте выполняет проверку каждого графа метаданных.

Как containerd влияет на скорость запуска Docker?

Docker работает поверх containerd. Если containerd заблокирован на проверке своих сокетов или баз данных bolt.db (/var/lib/containerd/io.containerd.metadata.v1.bolt/meta.db), dockerd не сможет инициализироваться.