首页/云/Docker 容器速查/daemon.json 改坏与不生效
容器排障52 条

daemon.json 改坏与不生效

两种症状要分开:服务起不来(JSON 语法错误)与配置不生效(字段需重启而只做了 reload,或 config 路径不对)。

Docker 容器速查云更新于 2026-10-13

两种症状要分开看

daemon.json 改坏后有两种表现:服务起不来,多数是 JSON 语法错误;配置不生效,常见是该字段需要重启而只做了热加载,或配置路径根本不对。先做语法校验,再决定是热加载还是安排重启窗口。

基本信息

语法校验python3 -m json.tool /etc/docker/daemon.json
生效方式部分字段支持热加载,其余需要重启
配置路径以服务启动参数里指向的文件为准
常见语法错误多余逗号、注释、中文引号
影响范围部分字段只对新建容器生效

典型使用场景

  • 改完配置后服务起不来,先做语法校验定位
  • 配置改了但行为没变,确认该字段是否需要重启
  • 核对实际加载的配置文件路径,避免改错文件
  • 变更窗口前预演:先在测试机验证再动生产
  • 排查字段作用范围,区分只影响新容器还是全部

校验与生效

校验与生效
sudo python3 -m json.tool /etc/docker/daemon.json > /dev/null && echo json-ok
sudo systemctl reload docker || true        # 仅对支持热加载的字段有效
docker info -f '{{.Driver}} live={{.LiveRestoreEnabled}}'   # 核对生效结果
sudo systemctl restart docker               # 确认需要重启后再执行

症状与处置

症状常见原因处置
服务起不来JSON 语法错误先过语法校验再重启
配置不生效字段需重启,只做了热加载安排窗口重启
改了没反应配置文件路径不对核对服务启动参数
只有新容器变了字段只影响新建容器存量容器需重建
reload 只对官方列出的可热加载字段有效,拿不准就直接安排窗口重启,别指望热加载。
JSON 末尾多逗号、注释、中文引号都是常见语法错误,先过一遍语法校验再重启,避免服务直接起不来。
改了配置但容器行为没变时,先确认该配置项是否只作用于新建容器,存量容器需要重建才能生效。
配置文件路径以服务启动参数为准,改错文件会表现为完全没有效果,动手前先确认实际加载的是哪一个。
变更前保留一份可用的旧配置,重启失败时可以快速回滚,缩短故障时间。

易错点

  • JSON 末尾多逗号、注释、中文引号是常见语法错误,先过语法校验再重启
  • 把需要重启的字段当成支持热加载,配置看起来写了却完全不生效
  • 改错配置文件路径导致毫无效果,动手前先确认服务实际加载哪个文件
  • 忽略部分字段只影响新建容器,存量容器行为不变被误判为配置无效

数据来源与参考

  • Docker 官方文档:daemon.json 与 systemd 配置(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌