无法从Docker Hub拉取镜像,出现连接registry端口失败报错寻求解决方案
Docker Hub镜像拉取失败:无法连接registry-1.docker.io:443的解决方案
检查网络连通性
先测试能否访问目标地址:- 执行
ping registry-1.docker.io看是否能正常解析并收到响应 - 用
telnet registry-1.docker.io 443测试443端口是否能连通
如果都不通,先确认本地网络是否正常,比如切换手机热点再试,排除网络本身的问题。
- 执行
配置代理(如果你的网络需要)
若所在环境必须通过代理访问外网,给Docker配置代理:- 创建Docker配置目录(不存在则新建):
mkdir -p ~/.docker - 在该目录下新建
config.json,写入代理信息(替换成你的代理地址):{ "proxies": { "default": { "httpProxy": "http://你的代理IP:端口", "httpsProxy": "http://你的代理IP:端口", "noProxy": "localhost,127.0.0.1,本地内网地址" } } } - 重启Docker服务:Linux用
systemctl restart docker,Windows/macOS直接重启Docker Desktop应用。
- 创建Docker配置目录(不存在则新建):
修复DNS解析问题
DNS解析错误可能导致无法定位registry-1.docker.io的正确IP,尝试更换公共DNS:- Linux:编辑
/etc/resolv.conf,添加nameserver 8.8.8.8或nameserver 1.1.1.1,保存后生效 - Windows:在网络适配器的属性里,把DNS服务器改成8.8.8.8
- macOS:系统设置→网络→高级→DNS,添加8.8.8.8作为DNS服务器
修改后重新尝试拉取镜像。
- Linux:编辑
检查防火墙/安全组
本地防火墙或服务器安全组可能拦截了443端口的出站请求:- Linux:临时关闭防火墙测试(
systemctl stop firewalld),如果能拉取,再配置允许Docker访问外网的规则 - Windows:临时关闭Windows Defender防火墙的出站规则限制
- 云服务器:检查安全组是否开放了出站的443端口
- Linux:临时关闭防火墙测试(
重置Docker网络
Docker网络配置异常也可能导致连接失败,执行以下命令重置:docker network prune
然后重启Docker服务,再尝试拉取镜像。
内容的提问来源于stack exchange,提问作者Amol
相关产品推荐
相关产品推荐

