Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

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

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 не сможет инициализироваться.

Полезные материалы
Рекомендуем