Docker部署的Jenkins无法通过localhost/127.0.0.1:9000访问SonarQube求助
问题根因
SonarQube容器与Jenkins运行环境未加入同一Docker自定义网络,Docker默认对不同网络的容器做网络隔离,因此你填写的宿主机IP、Sonar容器默认桥接网络IP都无法被Jenkins正常访问。
修复步骤
- 可选操作:如果不想重建现有Sonar容器,直接执行以下命令将Sonar容器加入jenkins网络即可:
docker network connect jenkins sonarqube
如果可以重建Sonar容器,删除现有容器后执行以下启动命令:
docker run -d --name sonarqube --network jenkins -e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true -p 9000:9000 sonarqube:latest
- 修改Jenkins系统配置中的SonarQube服务器访问URL为
http://sonarqube:9000。同一Docker网络内的容器支持直接通过容器名作为域名完成DNS解析,无需填写宿主机IP或容器动态IP,稳定性更高。 - 修正Pipeline脚本笔误:将
-Dsonar.projectKey=OWSAP修改为-Dsonar.projectKey=OWASP,避免后续项目匹配异常。
验证方式
进入Jenkins容器内执行ping sonarqube,如果可以正常收到返回包即代表网络连通正常,重新执行Pipeline即可完成Sonar代码扫描。
内容的提问来源于stack exchange,提问作者XinxLax
相关产品推荐
相关产品推荐

