1. 什么是 daemon.json
?
/etc/docker/daemon.json
是 Docker 引擎的核心配置文件,用于自定义 dockerd
(Docker 守护进程)的全局行为。它采用 JSON 格式,允许管理员在不修改启动命令的情况下调整 Docker 的运行参数。
2. daemon.json
的作用
该文件主要用于:
- 配置镜像加速器(如国内镜像源)
- 管理私有仓库(支持非 HTTPS 仓库)
- 调整日志策略(日志驱动、大小限制)
- 修改默认存储路径(避免
/var/lib/docker
空间不足) - 启用调试模式(排查问题)
3. 典型配置示例
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"insecure-registries": ["myregistry.example.com:5000"],
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"data-root": "/mnt/docker-data",
"debug": true
}
关键参数说明
参数 | 作用 |
---|---|
registry-mirrors |
配置镜像加速源(如阿里云、腾讯云) |
insecure-registries |
允许非 HTTPS 私有仓库 |
log-driver |
日志存储方式(json-file 、syslog ) |
log-opts |
日志文件大小和数量限制 |
data-root |
修改 Docker 默认存储路径 |
debug |
启用详细调试日志 |
4. 如何生效?
- 编辑配置文件
sudo nano /etc/docker/daemon.json
- 重启 Docker 服务
sudo systemctl restart docker
- 验证配置
sudo docker info | grep -i "debug\|registry\|data-root"
5. 常见问题排查
(1)JSON 语法错误
如果 daemon.json
格式错误,Docker 可能无法启动。可使用以下命令检查:
sudo journalctl -u docker.service # 查看错误日志
或使用在线 JSON 校验工具(如 JSONLint)。
(2)配置优先级
- **命令行参数 >
daemon.json
**
例如,如果运行dockerd --debug
,即使daemon.json
中"debug": false
,仍会启用调试模式。
(3)不同系统的路径
系统 | 路径 |
---|---|
Linux | /etc/docker/daemon.json |
Windows | %programdata%\docker\config\daemon.json |
macOS (Docker Desktop) | 需通过 GUI 配置 |
6. 最佳实践
- 备份原配置
sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.bak
- 避免频繁修改
建议在测试环境验证后再应用到生产环境。 - 结合
docker info
检查docker info # 查看当前生效的配置
7. 总结
daemon.json
是 Docker 运维中不可或缺的配置文件,适用于:
- 统一管理 Docker 参数
- 优化镜像拉取速度
- 调整日志和存储策略
- 调试复杂问题
合理使用该文件可以提升 Docker 的管理效率,避免依赖繁琐的命令行参数。
延伸阅读
正文完