根据你的配置内容和 Docker 的官方规范,当前配置存在语法错误和参数格式问题,需按以下要点修正:
1. 参数格式错误
- 错误项:
"data-root": ["/mnt/webdata/docker"]
此处的data-root
是 Docker 存储数据的根目录路径,应为字符串类型而非数组。直接赋值路径字符串即可。 - 正确写法:
{ "registry-mirrors": ["https://docker.1ms.run"], "data-root": "/mnt/webdata/docker" }
2. 配置路径与权限问题
- 路径检查:
确保/mnt/webdata/docker
目录已创建且权限正确,Docker 进程需要对该目录有读写权限。sudo mkdir -p /mnt/webdata/docker sudo chmod 755 /mnt/webdata/docker
- 文件系统兼容性:
若/mnt/webdata
是网络挂载的存储(如 NFS、Samba),需确保 Docker 支持在此类文件系统上运行。部分场景可能需要额外内核模块或参数调整。
3. 镜像加速器配置
- 语法正确性:
registry-mirrors
的数组格式正确,但需确保镜像地址有效。可通过以下命令验证镜像加速是否生效:docker info | grep "Registry Mirrors"
- 多镜像源配置:
若需添加多个镜像加速器,可扩展数组:"registry-mirrors": [ "https://docker.1ms.run", "https://registry.example.com" ]
4. 其他建议
- 配置文件路径:
此配置应写入 Docker 的daemon.json
文件,默认路径为/etc/docker/daemon.json
。 - 重启 Docker 服务:
修改后需重启 Docker 以使配置生效:
sudo systemctl restart docker
- 验证配置:
使用docker info
检查Docker Root Dir
和镜像源是否更新。
最终修正后的配置
{
"registry-mirrors": ["https://docker.1ms.run"],
"data-root": "/mnt/webdata/docker"
}
常见错误场景
- 权限不足:若 Docker 无法访问
/mnt/webdata/docker
,日志中会出现Permission denied
错误(通过journalctl -u docker
查看)。 - 路径未挂载:若路径对应的存储未挂载,Docker 启动会失败,需确保存储已挂载且稳定(尤其针对网络存储)。
若仍有问题,建议结合具体错误日志进一步排查。
镜像加速推荐地址
https://docker.1ms.run (*此站目前测试较稳定,可以优先尝试)
https://registry.dockermirror.com
https://docker.m.daocloud.io
https://docker.kubesre.xyz