本地运行sonatype/nexus3镜像失败,访问8081端口连接被拒绝
Nexus 8081端口连接拒绝排查方案
- 第一步:确认容器运行状态
执行docker ps -a查看nexus容器运行状态:- 若STATUS列显示非Up状态,说明容器启动失败,执行
docker logs nexus查看具体启动错误原因 - 若容器运行正常,继续下一步排查
- 若STATUS列显示非Up状态,说明容器启动失败,执行
- 第二步:检查端口映射是否生效
执行ss -tulpn | grep 8081查看宿主机8081端口是否被docker-proxy监听:- 无输出说明端口映射失败,先执行
lsof -i:8081检查宿主机8081端口是否被其他进程占用,若被占用可修改启动命令的-p参数替换为未被占用的端口(比如-p 18081:8081) - 有正常监听输出则继续下一步
- 无输出说明端口映射失败,先执行
- 第三步:确认Nexus服务已完全启动
Nexus首次启动耗时可达1-3分钟,未完全启动前访问会直接报连接拒绝
执行docker logs -f nexus查看实时启动日志,当日志中出现Started Sonatype Nexus OSS字样后,再发起访问测试 - 第四步:排查挂载目录权限问题(高频错误)
Nexus容器默认使用uid为200的用户运行,挂载的宿主机目录/home/nexus-data需要对该用户开放读写权限,执行以下命令授权后重启容器即可:
chown -R 200:200 /home/nexus-data docker restart nexus
- 第五步:网络策略校验
- 先进入容器内部测试访问,执行
docker exec -it nexus curl http://localhost:8081,若容器内部可正常返回内容,说明问题出在宿主机网络层 - 检查宿主机防火墙是否开放8081端口,CentOS系统可执行
firewall-cmd --zone=public --add-port=8081/tcp --permanent && firewall-cmd --reload开放端口,Ubuntu系统可执行ufw allow 8081/tcp开放端口
- 先进入容器内部测试访问,执行
- 第六步:确认访问地址正确性
若你在远程服务器部署Nexus,本地访问不能使用localhost,需替换为服务器的实际公网/内网IP地址,访问地址格式为http://服务器IP:8081
内容的提问来源于stack exchange,提问作者hichem mehdi
相关产品推荐
相关产品推荐

