理解 Docker 的 daemon.json 配置文件​

​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. 如何生效?​​

  1. ​编辑配置文件​sudo nano /etc/docker/daemon.json
  2. ​重启 Docker 服务​sudo systemctl restart docker
  3. ​验证配置​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. 最佳实践​

  1. ​备份原配置​sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.bak
  2. ​避免频繁修改​
    建议在测试环境验证后再应用到生产环境。
  3. ​结合 docker info 检查​docker info # 查看当前生效的配置

​7. 总结​

daemon.json 是 Docker 运维中不可或缺的配置文件,适用于:

  • ​统一管理 Docker 参数​
  • ​优化镜像拉取速度​
  • ​调整日志和存储策略​
  • ​调试复杂问题​

合理使用该文件可以提升 Docker 的管理效率,避免依赖繁琐的命令行参数。


​延伸阅读​

正文完
 0
评论(没有评论)
验证码