当前位置: 首页 > news >正文

如何配置 Docker daemon.json 修改镜像加速器和日志驱动参数

修改 Docker 全局配置最稳妥的方式是编辑 daemon.json 文件,改完后必须重启 Docker 服务才能生效,适合需要统一调整拉取源或控制日志大小的场景。

先说结论:直接编辑配置文件是标准做法,但服务重启期间容器业务会短暂中断,建议在维护窗口操作。

  • 适合:需要全局生效的镜像源配置或日志轮转策略
  • 先准备:备份原有配置文件并确认新的镜像地址可用
  • 验收:重启后通过 docker info 确认参数已加载

命令速用版

如果你已经确定要修改的内容,可以直接使用以下命令序列完成备份、编辑和重启。

# 1. 备份原有配置
cp /etc/docker/daemon.json /etc/docker/daemon.json.bak# 2. 编辑配置 (使用 vim 或 nano)
vim /etc/docker/daemon.json# 3. 重载配置并重启服务
systemctl daemon-reload
systemctl restart docker

为什么会这样

Docker 守护进程在启动时会读取 /etc/docker/daemon.json 作为全局配置文件。修改这个文件不会自动触发重载,因为守护进程没有监听该文件的变更事件。必须重启 docker 服务才能让新的配置项(如 registry-mirrors 或 log-driver)生效。这也是为什么生产环境修改时需要谨慎,因为重启期间正在运行的容器网络可能会短暂波动,且未设置为重启策略的容器不会自动恢复。

分步处理

按照以下步骤操作,可以最大程度降低配置错误导致服务无法启动的风险。

1. 检查当前配置状态

先查看当前是否已有配置文件,以及 Docker 正在使用的配置。

cat /etc/docker/daemon.json
docker info | grep -A 5 "Registry Mirrors"
docker info | grep "Logging Driver"

2. 编辑配置文件

确保 JSON 格式正确,逗号不能遗漏。以下是一个包含镜像加速器和日志驱动的典型示例:

{"registry-mirrors": ["https://your-mirror-id.mirror.aliyuncs.com"],"log-driver": "json-file","log-opts": {"max-size": "100m","max-file": "3"}
}

注意:如果没有现有文件,直接创建即可;如果有内容,请合并配置,不要覆盖掉原有的 storage-driver 等关键参数。

3. 验证 JSON 语法

在重启前,最好用 Python 或 jq 检查语法是否正确,避免重启失败。

# 使用 Python 验证
python -m json.tool /etc/docker/daemon.json > /dev/null && echo "JSON OK" || echo "JSON Error"# 使用 jq 验证 (推荐,更轻量)
jq . /etc/docker/daemon.json > /dev/null && echo "JSON OK"

4. 重启服务

systemctl daemon-reload
systemctl restart docker

怎么验证是否生效

服务启动后,不要立刻认为配置成功,需要通过命令确认参数已加载。

1. 检查镜像加速器

docker info | grep -A 10 "Registry Mirrors"

输出中应包含你配置的地址。如果显示为空或未变化,说明配置未生效。

2. 检查日志驱动

docker info | grep "Logging Driver"

确认显示为 json-file 或其他你设置的驱动。新建一个容器测试日志轮转是否按预期工作。

docker run `--rm` alpine echo "test log"
ls -lh /var/lib/docker/containers/*/*.log

常见坑

  • JSON 语法错误:最后一个字段后面多加了逗号,或者引号不匹配,会导致 Docker 无法启动。务必先做语法检查。
  • 配置覆盖:直接写入新内容覆盖了原有的 storage-driver 配置,可能导致 Docker 无法找到存储路径,启动失败。
  • 镜像地址失效:公共镜像加速器地址可能不稳定,建议优先使用云厂商提供的专属地址。公开资料中没有看到可靠的量化数据表明哪个公共地址长期最稳,需根据实际情况测试。
  • 日志丢失风险:修改 log-driver 后,旧容器可能仍沿用旧驱动,只有新创建的容器才会使用新配置。且切换驱动可能导致旧日志不可读。
  • 服务中断:systemctl restart docker 会停止所有容器。如果容器没有设置 `--restart`=always,重启后需要手动启动。

参考来源

  • Docker Docs, Daemon configuration file, https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file
  • Docker Docs, Configure logging drivers, https://docs.docker.com/config/containers/logging/configure/

原文链接:https://www.zjcp.cc/ask/11087.html

http://www.jsqmd.com/news/816751/

相关文章:

  • Neovim终端光标动画插件smear-cursor.nvim配置指南
  • 为什么你的Claude查询延迟飙升300%?:揭秘文档嵌套深度与向量索引协同失效的底层机制
  • 不想买一堆真机,有没有远程就能操作各种手机的测试工具?推荐优测云真机平台 - 领先技术探路人
  • 2026北京装修实测封神!10款老房改造企业服务公司设计公司口碑出众值得选 - 十大品牌榜
  • 172号卡分销系统:2026年度全国合作伙伴官方招募公告 - 博客湾
  • 如何三步搞定B站4K大会员视频下载?这款开源工具让你轻松离线收藏
  • NotebookLM多语言支持真相,谷歌内部测试文档泄露:非拉丁语系需强制启用“--lang_fallback”参数否则丢失引用溯源
  • 2026年校园零食选购深度分析:兼顾健康便携与口感的可信品牌选择指南 - 产业观察网
  • 2026 网络软文发布渠道权威测评:AI 时代企业营销的最优选择 - 博客湾
  • Taotoken的API Key管理与审计日志功能在安全运维中的作用
  • 电力规约测试避坑指南:IEC60870-5-102协议中那些容易搞混的‘控制域’位详解
  • 2026年最新10款降AI率工具实测推荐 - 降AI实验室
  • 2026年全国Molykote特种润滑脂代理商盘点:五家区域代表企业综合评述 - 深度智识库
  • 为claudecode配置taotoken解决账号封禁与token不足难题
  • LLaVAR:基于数据增强的多模态大模型文字图像理解实战
  • 2026年商圈餐饮店靠谱收银维护商推荐:专业服务商能力适配全景分析 - 产业观察网
  • 2026 江苏浙江台州彩钢瓦金属屋面外墙防水补漏防腐翻新公司 TOP5 权威推荐 + 避坑指南 - 资讯速览
  • 别再乱用大字典了!Hydra破解SSH时如何用`-t`和`-w`参数提升效率
  • 别再死记硬背!用Python脚本帮你自动计算FIRSTVT和LASTVT(附完整代码)
  • 联想Ideapad 320S-15IKB加装M.2 NVMe SSD实战:从拆机到装系统,保姆级避坑指南
  • 从开源虾项目看物联网与数据分析在水产养殖中的实践
  • 艾尔登法环存档迁移终极指南:专业级角色数据备份与恢复解决方案
  • 成都窗帘源头工厂推荐|专注工程与家用窗帘研发生产十余年 - 企业推荐师
  • 2026年冻干咖啡口感接近现磨横评与对比 - 领先技术探路人
  • 从触达到转化:京东物流B端营销的数据闭环与AI驱动增长实践(收藏版)
  • 企业级应用如何通过 Taotoken 实现 API 访问审计与安全管控
  • 终极指南:7个高效技巧掌握Sketch动画插件AnimateMate
  • 2026北京装修实测封神!10款装修半包企业口碑优质广受好评 - 十大品牌榜
  • 2026线下拓店服务商评测:五大主流品牌单店复制能力横评! - 品牌种草官
  • 2026年外墙仿石漆供应厂家推荐:核心竞争力与适配场景深度解析 - 产业观察网