SystemdDoctor
служба не работает docker конфигурация частое

Docker: unable to configure the Docker daemon with file daemon.json

Демон читает daemon.json при запуске и отказывается стартовать при любой ошибке в нём: лишняя запятая, неизвестный ключ, неверный тип значения. Сообщение обычно называет позицию или ключ.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Синтаксическая ошибка в JSON

    Лишняя запятая в конце, незакрытая скобка, одинарные кавычки вместо двойных. Файл правят вручную, и это случается регулярно.

  2. Неизвестный или устаревший ключ

    Ключи меняются между версиями Docker. Настройка из старого руководства может быть не принята новым демоном.

  3. Неверный тип значения

    Строка вместо числа, число вместо логического значения. JSON разбирается, а демон отвергает содержимое.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Разбирает файл и указывает позицию ошибки.

sudo python3 -m json.tool /etc/docker/daemon.json

Сообщение демона с именем проблемного ключа.

journalctl -u docker -n 40 --no-pager

Проверка настроек демоном без запуска (в новых версиях).

sudo dockerd --validate 2>&1 | head

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Синтаксическая ошибка в JSON
Почему происходит
Лишняя запятая в конце, незакрытая скобка, одинарные кавычки вместо двойных. Файл правят вручную, и это случается регулярно.
Как проверить
Проверьте файл разборщиком JSON.
sudo python3 -c "import json;json.load(open('/etc/docker/daemon.json'))" && echo "JSON в порядке"
Как исправить
Исправьте синтаксис и перезапустите демон. Перед правкой полезно сохранить копию файла.
sudo cp /etc/docker/daemon.json{,.bak} && sudo systemctl restart docker
2. Неизвестный или устаревший ключ
Почему происходит
Ключи меняются между версиями Docker. Настройка из старого руководства может быть не принята новым демоном.
Как проверить
Посмотрите сообщение демона: оно называет ключ.
journalctl -u docker -n 30 --no-pager | grep -i -E "unknown|unable to configure"
Как исправить
Уберите неизвестный ключ или найдите его современный аналог в документации своей версии.
3. Неверный тип значения
Почему происходит
Строка вместо числа, число вместо логического значения. JSON разбирается, а демон отвергает содержимое.
Как проверить
Посмотрите файл и сообщение об ошибке рядом.
sudo cat /etc/docker/daemon.json
journalctl -u docker -n 20 --no-pager
Как исправить
Приведите типы значений к ожидаемым: логические без кавычек, числа без кавычек, списки в квадратных скобках.

Пример вывода

Лишняя запятая в конце объекта. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.

× docker.service - Docker Application Container Engine
     Active: failed (Result: exit-code) since Mon 2026-09-15 11:02:10 MSK; 2s ago

dockerd[4100]: unable to configure the Docker daemon with file /etc/docker/daemon.json: invalid character '}' looking for beginning of object key string
systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE

Связанные ошибки

Где встречается чаще всего

Источники

  • Документация Docker: файл настроек демона документация программы
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Воспроизведено лишней запятой в daemon.json.
    собственная проверка, systemd 255
    сверено 15 сентября 2026