在 docker 中查找 `daemon.json` 配置文件的位置,最直接的方法是使用 docker info 命令查看输出中的 config file 字段。该文件通常位于 /etc/docker/daemon.json(linux)或 docker desktop 的 %programdata%\docker\config\daemon.json(windows)。如果该路径不存在,说明 docker 使用的是默认配置,未进行自定义修改。

如何验证 daemon.json 是否生效
要验证 daemon.json 的配置是否被 Docker 守护进程正确加载,需要重启 Docker 服务后检查 docker info 的输出。例如,设置 log-driver 为 journald 后,通过 docker info | grep Logging 可以确认日志驱动已变更。若配置有误,Docker 服务将无法启动,此时需检查 journalctl -u docker 获取错误信息。

{
"log-driver": "journald",
"log-opts": {
"tag": "{{.Name}}"
}
}
上述配置将日志驱动改为 journald,标签为容器名称。重启服务后,运行 docker run hello-world,然后通过 journalctl -t dockerd 查看日志,确认日志格式是否符合预期。若 docker info 显示 Logging Driver: journald,则配置成功。
daemon.json 常见配置项有哪些
daemon.json 支持多种配置项,如 storage-driver、registry-mirrors、insecure-registries 等。这些配置直接影响 Docker 的行为,例如镜像拉取源、存储后端和安全性。修改这些配置前,建议备份原文件,并在测试环境中验证。

{
"storage-driver": "overlay2",
"registry-mirrors": ["https://mirror.example.com"],
"insecure-registries": ["192.168.1.100:5000"]
}
此配置指定使用 overlay2 存储驱动,添加镜像加速器,并允许访问私有仓库。保存文件后,重启 Docker 服务使配置生效。可通过 docker info | grep Storage 和 docker info | grep Registry 验证配置是否应用。若出现冲突,如存储驱动不支持,Docker 会拒绝启动并报错。
基于 daemon.json 中 log-driver 配置的具体问题
当 daemon.json 中设置了 log-driver 为 journald 时,Docker 容器的日志将被发送到 systemd journal,而非默认的 json-file 驱动。这可能导致 docker logs 命令无法直接查看日志,因为该命令依赖于 json-file 驱动。此时,应使用 journalctl 命令查询日志,或通过 docker inspect 查看容器的日志路径。











