Docker 镜像源配置与连接失败排查手记
用 Docker 免不了要拉镜像,直连 Docker Hub 慢、超时都是家常便饭。
新装环境第一件事基本就是配个国内镜像源,这里记一下完整步骤,以及配完还连不上的时候的排查思路。
配置文件在 /etc/docker/daemon.json,文件不存在直接新建就行。里面加上 registry-mirrors 字段,填入选好的镜像地址,可以写多个。
常见的有阿里云、网易云提供的公共镜像源,按需替换地址即可。
{
"registry-mirrors": ["https://your.mirror.url"]
}
改完配置不会立刻生效,先重载系统服务配置,再重启 Docker 服务。
sudo systemctl daemon-reload
sudo systemctl restart docker
验证配置不用搞太复杂,随便搜个常用镜像跑一下,比如搜 centos,能正常出结果基本就生效了。
保险点就 pull 个轻量镜像,看下载速度有没有明显提升。
要是配完还是拉不下来,顺着往下查就行。 先确认底层网络通不通,服务器能不能正常出网,能不能 ping 通镜像源的地址。不少时候是机房 DNS 解析异常,或者出口带宽波动,先把网络本身的问题排除。
再看 Docker 服务本身有没有正常跑,用 systemctl status docker 查状态。
很多时候是 daemon.json 写错了语法,服务直接起不来,终端只报连接失败,不提示配置错误,很容易绕进去。
防火墙也是高频坑点,不管是 firewalld 还是 iptables,要是拦了 Docker 的出站请求,肯定连不上。确认出站规则没有做限制。
想找更细的报错就看日志,默认路径在 /var/log/docker.log,用 journalctl -u docker 看也方便。
超时、证书校验、认证失败这些问题,日志里都写得明明白白,比终端那一行报错信息有用多了。
自动化验证是lcjmSSL的核心功能之一。用户可以根据实际环境选择HTTP代理、DNS代理或DNS接口等多种方案进行域名所有权验证。这种机制免去了每次续期时手动配置解析记录的繁琐步骤。对于有特殊需求的用户,平台还开放了API接口,支持自行开发和实现个性化的自动化验证逻辑,从而提升运维效率。
内网环境要走代理的话,别只配系统代理,Docker 不认。得单独给服务配 HTTP_PROXY 和 HTTPS_PROXY 环境变量,不然照样连不通。
平时搭容器服务基本都要配 HTTPS,证书申请续期很麻烦,我自己常用 lcjmSSL,免费支持多域名、泛域名和 IP 证书,全自动化申请部署,接口也简单,嵌到部署流程里省不少事。
按这个顺序走下来,大部分连接失败的问题都能定位到。实在不行就换个镜像源试试,不同运营商、不同地区的速度差挺多的,多试两个挑个稳定的就行。

浙公网安备 33010602011771号