无法通过Docker登录本地Nexus仓库,请求排查连接拒绝问题
问题:Docker登录Nexus宿主仓库提示连接被拒绝,端口未监听
我在本地网络中以Docker容器形式运行Nexus仓库(地址为192.168.0.100:8081),操作步骤如下:
- 创建新的Docker宿主仓库,在仓库设置的HTTP字段中指定端口8083;
- 创建
/etc/docker/daemon.json文件并添加配置:
{ "insecure-registries" : ["http://192.168.0.100:8083"] }
- 在防火墙中开放端口8083。
但执行docker login 192.168.0.100:8083时,出现错误:
Error response from daemon: Get "http://192.168.0.110:8083/v2/": dial tcp 192.168.0.100:8083: connect: connection refused
同时,netstat -lnpt的返回结果中未看到端口8083处于监听状态。请问可能是什么问题?
问题分析及解决方向
1. Nexus容器未完成端口映射
你在Nexus内部配置了仓库的HTTP端口8083,但这只是Nexus服务内部的端口,必须将容器的8083端口映射到宿主机的8083端口,外部才能访问。
- 检查Nexus容器的启动命令或docker-compose配置,确认是否包含
-p 8083:8083的映射参数。如果没有,需重新启动容器并添加该配置,比如:docker run -d -p 8081:8081 -p 8083:8083 sonatype/nexus3
2. Nexus仓库配置未生效或未启用
- 登录Nexus管理界面
192.168.0.100:8081,检查你创建的Docker宿主仓库是否处于启用状态,且HTTP端口确实设置为8083。 - 若配置有修改,重启Nexus容器让配置生效:
docker restart <你的Nexus容器ID>
3. Docker守护进程配置未重载
修改/etc/docker/daemon.json后,必须重启Docker守护进程才能让配置生效:
systemctl daemon-reload systemctl restart docker
注意:重启Docker会停止所有运行中的容器,请提前做好业务准备。
4. Nexus容器内部未监听8083端口
进入Nexus容器内部,检查是否有进程监听8083端口:
docker exec -it <你的Nexus容器ID> bash netstat -lnpt
如果容器内也没有监听记录,说明Nexus仓库的配置存在错误,需重新检查仓库的端口设置。
5. 防火墙或网络策略未正确生效
虽然你开放了8083端口,但可能存在规则冲突:
- 检查防火墙规则顺序,确保允许8083端口的规则在拒绝规则之前;
- 可临时关闭防火墙测试连接,比如用ufw:
如果关闭后能正常连接,重新调整防火墙规则,确保8083端口的入站流量被允许。ufw disable
内容的提问来源于stack exchange,提问作者Hasan Humbatov
相关产品推荐
相关产品推荐

