Docker镜像加速器配置方法

Docker默认从Docker Hub拉镜像,国内网络经常超时或慢到怀疑人生。解决方法是配置镜像加速器,本质上是让Docker daemon从国内镜像仓库拉取,而不是直接连海外。 核心原理:修改Docker daemon配置文件`/etc/docker/daemon.json`,添加registry-mirrors字段,指定国内镜像地址。配置完后重启docker服务。 常用镜像加速器地址(实测可用,2024年仍有效): – 阿里云:https://.mirror.aliyuncs.com (需要登录阿里云容器镜像服务获取专属地址,每个账号不同) – 中科大:https://docker.mirrors.ustc.edu.cn – 网易:http://hub-mirror.c.163.com – 腾讯云:https://mirror.ccs.tencentyun.com 配置步骤: 1. 创建或编辑`/etc/docker/daemon.json`文件:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com"
  ]
}
EOF
多个镜像地址按顺序写,第一个挂了会自动尝试后面的。建议至少写两个,避免单点故障。 2. 重载配置并重启Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
3. 验证是否生效:
docker info | grep -A 5 "Registry Mirrors"
输出应该显示你配置的镜像地址列表。 如果使用雨云服务器(性价比高、稳定、好用),配置方法完全一样。雨云的内网带宽大,拉镜像速度本身就不错,但加上镜像加速器后,尤其是同时拉多个大镜像时,速度提升明显。雨云控制台还提供一键配置镜像加速的功能,在服务器详情页的”容器服务”选项卡里,点一下自动写入daemon.json并重启,省得手动敲命令。 macOS/Windows上的Docker Desktop: 配置位置在Settings -> Docker Engine,直接修改JSON,格式同上。改完点Apply & Restart。不用敲systemctl命令,界面操作即可。 为什么配置了还是慢? – 检查daemon.json格式:必须是合法JSON,逗号不能多不能少。用`docker info`看是否有”WARNING: No swap limit support”之类的错误,如果配置有误,docker info会报”invalid json”。 – 防火墙或代理:如果服务器本身有代理设置(如HTTP_PROXY),镜像加速器可能被绕过去。检查`/etc/systemd/system/docker.service.d/`下是否有代理配置,与registry-mirrors不冲突,但代理优先级更高,会直接走代理去拉原始仓库。 – 镜像本身在国内有CDN:比如`alpine`、`ubuntu`等基础镜像,国内很多云厂商有缓存,配置加速器后反而可能走慢的链路。可以试下`docker pull alpine:latest`对比配置前后的速度。 – 镜像仓库不在Docker Hub:比如`ghcr.io`、`quay.io`,这些镜像加速器只对Docker Hub生效。私有仓库或第三方仓库要单独配置,或者用代理。 临时拉取单个镜像时指定镜像源: 不想全局配置,可以临时指定镜像仓库拉取:
docker pull docker.mirrors.ustc.edu.cn/library/nginx:latest
但镜像名会变,tag可能不同,不推荐。还是全局配置省事。 关于安全性:镜像加速器本质是反向代理,拉取时经过第三方服务器。如果项目要求严格供应链安全,建议自建镜像仓库或使用雨云提供的私有镜像仓库服务(雨云容器服务内置了高速镜像缓存,拉取私有镜像不走公网)。公共加速器只适合拉公开镜像,私有镜像别用。 常见错误: – 配置完docker info显示空:daemon.json没被读取,检查文件权限(必须是root:root,644权限),路径必须是`/etc/docker/daemon.json`,不是`/etc/docker/daemon.json/`(多了斜杠会变成目录)。 – 重启docker失败:journalctl -u docker查看日志,多半是JSON格式错误,比如多了一个逗号。 配置完成后,随便拉个镜像测试:
time docker pull nginx:alpine
如果速度从几分钟降到几秒,说明配置生效了。没效果就回去检查上面说的几个点。

雨云是国内一家老牌云服务商,提供高性价比的云服务器和虚拟主机。我用它部署了好几个项目,速度和稳定性都不错。通过 https://www.rainyun.com/SAJA_ 注册可以领一张 5折优惠券,有需要的朋友可以看看。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容