Docker镜像加速器配置:手把手教你配置Docker镜像加
为什么需要镜像加速器
Docker 默认从官方的 Docker Hub 拉取镜像,国内网络访问 Docker Hub 经常出现超时或下载极慢的问题。
配置 Docker镜像加速器之后,系统会从国内离你最近的镜像仓库拉取数据,下载速度能从几十 KB/s 提升到几十 MB/s。
对于经常使用 Docker 做开发、部署的朋友来说,这一步必不可少。
选择可用的镜像源
目前国内比较稳定且免费的 Docker 镜像加速源有这几个:
- 阿里云(需注册后获得专属加速地址,格式为
https://xxxx.mirror.aliyuncs.com) - 腾讯云(同样需登录后获取个人加速地址)
- 中科大(
https://docker.mirrors.ustc.edu.cn,无需注册) - 网易(
https://hub-mirror.c.163.com) - 百度云(
https://mirror.baidubce.com)
其中中科大和网易的公共地址可以直接使用,但高峰期可能不稳定。
如果你有云服务商的账号,建议优先使用阿里云或腾讯云的个人专属地址,速度更稳定。
配置文件的具体操作
配置 Docker镜像加速器本质上是修改 Docker 的守护进程配置文件 /etc/docker/daemon.json。
如果文件不存在,就手动创建。
1. 登录服务器并切换 root 用户
ssh your_user@your_server_ip
sudo su -
2. 编辑 daemon.json 文件
用你熟悉的编辑器打开文件,例如 vim:
vim /etc/docker/daemon.json
如果文件是空的,直接写入以下内容(这里以中科大源为例,你也可以替换成其他源地址):
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
如果原来就有其他配置项(比如 insecure-registries),保持原有配置不变,只添加 registry-mirrors 字段。
多个镜像源可以写成数组,Docker 会按顺序尝试:
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com"]
}
保存并退出(vim 中按 Esc,然后输入 :wq)。
3. 重启 Docker 服务
systemctl daemon-reload
systemctl restart docker
如果你用的是其他 init 系统,改用 service docker restart。
避坑说明与常见问题
配置文件格式必须严格 JSON:写错一个逗号或引号都会导致 Docker 启动失败。
可以在修改后用 jsonlint 或在线工具检查。
简单的检查方法是执行 systemctl start docker 看有没有提示错误。
如果启动失败,用 journalctl -u docker 查看日志,定位 JSON 语法错误。
重启后镜像加速不生效:尝试运行 systemctl daemon-reload 再重启 Docker。
部分旧版本 Docker 需要手动重载守护进程。
为什么配置了加速器,拉取还是慢? 检查配置的镜像源是否可用。
可以用 curl -I <镜像源地址>/v2/ 测试连通性,返回 200 表示正常。
如果镜像源本身超时,换一个地址即可。
docker info 中看不到 Registry Mirrors:说明配置文件没被加载。
检查 /etc/docker/daemon.json 的路径是否正确,以及 Docker 版本是否支持(Docker 1.12 以上版本都支持)。
验证配置是否生效
配置并重启 Docker 后,运行:
docker info | grep -A 1 'Registry Mirrors'
输出应该类似:
Registry Mirrors:
https://docker.mirrors.ustc.edu.cn/
然后尝试拉取一个常用镜像(比如 nginx):
docker pull nginx:latest
观察下载速度,如果从原来的几十分钟变成几十秒,说明配置成功。
如果你在配置过程中遇到任何报错,建议优先查看 Docker 日志 journalctl -u docker,那里面会详细告诉你问题出在哪。
配置完成之后,日常的 docker pull、docker run 都会自动走加速器,无需重复设置。
希望这篇 Docker镜像加速器配置教程能帮你省下等待镜像下载的时间。