Ubuntu本地网络推送Docker镜像至私有Registry出现路由不可达错误
Docker私有仓库推送镜像报错"no route to host"的解决思路
检查Docker daemon私有仓库配置
Ubuntu系统下,需确保Docker daemon已将私有仓库地址加入信任列表。编辑/etc/docker/daemon.json文件(不存在则新建),添加以下内容:{ "insecure-registries": ["172.17.3.50:443"] }保存后重启Docker服务:
sudo systemctl restart docker用
docker info命令查看输出中的Insecure Registries项,确认目标地址已在列表中。排查防火墙与路由规则
- 临时关闭Ubuntu本地防火墙(如ufw)测试:
若推送成功,需添加永久放行规则:sudo ufw disablesudo ufw allow from [你的Ubuntu机器IP段] to 172.17.3.50 port 443 sudo ufw enable - 检查私有仓库所在机器的防火墙,确保允许Docker默认网段(通常为
172.17.0.0/16)访问443端口。
- 临时关闭Ubuntu本地防火墙(如ufw)测试:
验证Docker网络连通性
使用Docker容器测试与仓库地址的连通性,避免宿主机网络与Docker网络栈不一致的问题:docker run --rm alpine ping 172.17.3.50若ping不通,需检查Docker网络的路由配置,或切换至默认bridge网络重试推送。
确认证书信任配置
若仓库使用自签HTTPS证书,需将CA证书复制到Ubuntu机器的指定路径:sudo mkdir -p /etc/docker/certs.d/172.17.3.50:443 sudo cp [CA证书路径]/ca.crt /etc/docker/certs.d/172.17.3.50:443/重启Docker服务后再次尝试推送。
内容的提问来源于stack exchange,提问作者maksnikolaiev
相关产品推荐
相关产品推荐

