daemon.json 是 Docker 守护进程的全局 JSON 配置文件,位于 Linux 的 /etc/docker/daemon.json,用于配置镜像加速、日志限制、DNS、data-root、存储驱动、网络网段(bip)、代理(proxies)等;修改后需验证 JSON 格式并执行 systemctl restart docker 生效。

daemon.json 是 Docker 守护进程的配置文件,用于全局控制 Docker 的行为,比如镜像仓库地址、日志驱动、默认网络设置等。它不是启动时通过命令行传参,而是由 Docker 守护进程在启动时自动读取的 JSON 格式文件。
文件位置和基础结构
Linux 系统默认路径是 /etc/docker/daemon.json;Windows(Docker Desktop)不直接使用该文件,macOS 同理;只有 Linux 服务器或自建 Docker 环境才需要手动创建和编辑它。
文件必须是合法的 JSON 格式,不能有注释,键名区分大小写,建议用双引号包裹所有字符串,结尾不加逗号。
最简可用内容:
常用配置项说明
以下是一些高频、实用的配置项,按功能归类:
-
镜像加速与私有仓库:加快拉取速度或指向内部 registry
"registry-mirrors": ["https://mirror.gcr.io", "https://docker.mirrors.ustc.edu.cn"],
"insecure-registries": ["192.168.1.100:5000"] -
存储驱动与数据目录:更换存储后端(如 overlay2 是默认推荐),或迁移镜像/容器数据
"storage-driver": "overlay2",
"data-root": "/data/docker" -
网络配置:自定义默认 bridge 网络网段,避免与内网冲突
"default-address-pools": [
{"base": "172.30.0.0/16", "size": 24}
] -
守护进程绑定方式:开放 TCP 接口(慎用,需配合防火墙或 TLS)
"hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2376"]
修改后生效方式
改完 daemon.json 不会自动生效,必须重载或重启 Docker 守护进程:
- 先验证语法是否正确:
sudo dockerd --validate(无输出即为 OK) - 重载配置(推荐,不中断运行中的容器):
sudo systemctl reload docker - 或重启服务:
sudo systemctl restart docker - 检查是否生效:
docker info | grep -E "(Registry|Root Dir|Logging Driver)"
注意事项和避坑点
容易出错的地方:
- JSON 格式错误(多逗号、单引号、中文标点)会导致 Docker 启动失败,
systemctl status docker可查报错 - 修改
data-root前,确保目标目录存在且 Docker 有读写权限,否则启动失败 -
insecure-registries仅对 HTTP 仓库有效,HTTPS 仓库无需添加;但若证书不被信任,还需额外配置certs.d - 不要随意改动
storage-driver,除非明确知道当前驱动不适用,且已备份数据


















