推送镜像到Harbor registry报错Connection refused如何解决?
Harbor推送镜像5000端口连接拒绝排查方案
1. 校验Harbor服务运行状态与端口配置
- 执行
docker ps命令查看所有Harbor相关容器状态,确保harbor-core、harbor-registry、harbor-portal等核心容器均处于Up状态,若有容器异常退出,可通过docker logs <异常容器ID>查看具体报错原因。 - 确认Harbor监听端口配置:默认Harbor HTTP协议监听端口为80,若需使用5000端口,需检查
harbor.yml配置文件中http.port字段是否已设置为5000,修改配置后需执行./prepare再执行docker-compose down && docker-compose up -d重启Harbor生效。 - 本地验证端口监听:在Harbor部署服务器上执行
curl http://localhost:5000/v2/,若返回401未授权或其他正常响应说明端口监听正常,若仍提示连接拒绝,说明Harbor未成功启动对应端口的监听。
2. 校验Docker客户端不安全镜像仓库配置
- 检查
/etc/docker/daemon.json文件是否存在以下配置,注意JSON语法必须合法,不能存在多余逗号:
{ "insecure-registries": ["harbor_example:5000"] }
- 配置修改后必须执行
systemctl daemon-reload && systemctl restart docker重启Docker服务,重启完成后执行docker info,查看Insecure Registries区块是否已经包含harbor_example:5000条目,确认配置生效。
3. 校验网络连通性与域名解析
- 确认执行push命令的机器上
harbor_example域名可正确解析到Harbor服务器IP,可检查/etc/hosts文件是否添加了对应映射,示例格式为192.168.xxx.xxx harbor_example,缺少映射会导致域名解析错误无法连接。 - 测试端口连通性:执行
nc -zv harbor_example 5000,若提示连接失败,需检查Harbor服务器的防火墙是否开放5000端口,Ubuntu ufw防火墙可执行ufw allow 5000放行端口,云服务器需额外检查安全组规则是否放行5000端口的入站请求。
4. 校验镜像标签配置
执行docker images确认待推送镜像的标签格式正确,必须为harbor_example:5000/ubuntu:latest格式,若标签错误需先执行docker tag ubuntu:latest harbor_example:5000/ubuntu:latest重新打标签后再推送。
内容的提问来源于stack exchange,提问作者Maxclac
相关产品推荐
相关产品推荐

