You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS下Docker运行Jenkins后无法访问localhost:8080

问题排查:Docker Jenkins容器启动后无法访问localhost:8080

我在MacOS的Docker Desktop上执行docker pull jenkins/jenkins:lts-jdk11拉取Jenkins镜像并运行。运行日志显示Jenkins已完全启动,但在Chrome中访问http://localhost:8080/时,页面提示“无法访问此网站”。此前该服务可正常使用,因Cmake插件问题重新拉取镜像后出现此故障,请求排查原因。

运行日志

user@MacBook-Pro ~ % docker pull jenkins/jenkins:lts-jdk11
lts-jdk11: Pulling from jenkins/jenkins
4544405c869e: Already exists 
053893571470: Already exists 
09443be43c92: Already exists 
245a3ac7248d: Already exists 
945be0a39d66: Already exists 
345223d4887e: Already exists 
7456b7b2d084: Already exists 
b45efbe3b729: Already exists 
844a2b426b1d: Already exists 
24583556fd6c: Already exists 
2897437500f5: Already exists 
476474UDUDGD: Already exists 
67GDGD6DFFDF: Already exists 
FD63635E6553: Already exists 
Digest: sha256:5508cb1317aa0ede06cb34767fb5643860d1307109ade577d5df871f62170678
Status: Downloaded newer image for jenkins/jenkins:lts-jdk11
docker.io/jenkins/jenkins:lts-jdk11
user@MacBook-Pro ~ % docker images
REPOSITORY        TAG         IMAGE ID       CREATED       SIZE
jenkins/jenkins   lts-jdk11   c1ae8e3564e4   2 weeks ago   453MB
user@MacBook-Pro ~ % docker run c1ae8e3acfe4
Running from: /usr/share/jenkins/jenkins.war
webroot: EnvVars.masterEnvVars.get("JENKINS_HOME")
2022-09-27 20:45:33.606+0000 [id=1] INFO    winstone.Logger#logInternal: Beginning extraction from war file
2022-09-27 20:45:34.165+0000 [id=1] WARNING o.e.j.s.handler.ContextHandler#setContextPath: Empty contextPath
2022-09-27 20:45:34.198+0000 [id=1] INFO    org.eclipse.jetty.server.Server#doStart: jetty-10.0.11; built: 2022-06-21T21:12:44.640Z; git: d988aa016e0bb2de6fba84c1645649c72eae3e32; jvm 11.0.16.1+1
2022-09-27 20:45:34.369+0000 [id=1] INFO    o.e.j.w.StandardDescriptorProcessor#visitServlet: NO JSP Support for /, did not find org.eclipse.jetty.jsp.JettyJspServlet
2022-09-27 20:45:34.398+0000 [id=1] INFO    o.e.j.s.s.DefaultSessionIdManager#doStart: Session workerName=node0
2022-09-27 20:45:34.641+0000 [id=1] INFO    hudson.WebAppMain#contextInitialized: Jenkins home directory: /var/jenkins_home found at: EnvVars.masterEnvVars.get("JENKINS_HOME")
2022-09-27 20:45:34.783+0000 [id=1] INFO    o.e.j.s.handler.ContextHandler#doStart: Started w.@4d8286c4{Jenkins v2.361.1,/,file:///var/jenkins_home/war/,AVAILABLE}{/var/jenkins_home/war}
2022-09-27 20:45:34.795+0000 [id=1] INFO    o.e.j.server.AbstractConnector#doStart: Started ServerConnector@e84a8e1{HTTP/1.1, (http/1.1)}{0.0.0.0:8080}
2022-09-27 20:45:34.809+0000 [id=1] INFO    org.eclipse.jetty.server.Server#doStart: Started Server@32c85649{STARTING}[10.0.11,sto=0] @1559ms
2022-09-27 20:45:34.811+0000 [id=24]    INFO    winstone.Logger#logInternal: Winstone Servlet Engine running: controlPort=disabled
2022-09-27 20:45:34.926+0000 [id=31]    INFO    jenkins.InitReactorRunner$1#onAttained: Started initialization
2022-09-27 20:45:34.946+0000 [id=32]    INFO    jenkins.InitReactorRunner$1#onAttained: Listed all plugins
2022-09-27 20:45:35.328+0000 [id=29]    INFO    jenkins.InitReactorRunner$1#onAttained: Prepared all plugins
2022-09-27 20:45:35.331+0000 [id=30]    INFO    jenkins.InitReactorRunner$1#onAttained: Started all plugins
2022-09-27 20:45:35.337+0000 [id=35]    INFO    jenkins.InitReactorRunner$1#onAttained: Augmented all extensions
2022-09-27 20:45:35.460+0000 [id=33]    INFO    jenkins.InitReactorRunner$1#onAttained: System config loaded
2022-09-27 20:45:35.461+0000 [id=32]    INFO    jenkins.InitReactorRunner$1#onAttained: System config adapted
2022-09-27 20:45:35.461+0000 [id=32]    INFO    jenkins.InitReactorRunner$1#onAttained: Loaded all jobs
2022-09-27 20:45:35.462+0000 [id=32]    INFO    jenkins.InitReactorRunner$1#onAttained: Configuration for all jobs updated
2022-09-27 20:45:35.496+0000 [id=49]    INFO    hudson.model.AsyncPeriodicWork#lambda$doRun$1: Started Download metadata
2022-09-27 20:45:35.501+0000 [id=49]    INFO    hudson.util.Retrier#start: Attempt #1 to do the action check updates server
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.vmplugin.v7.Java7$1 (file:/var/jenkins_home/war/WEB-INF/lib/groovy-all-2.4.21.jar) to constructor java.lang.invoke.MethodHandles$Lookup(java.lang.Class,int)
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.vmplugin.v7.Java7$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2022-09-27 20:45:35.930+0000 [id=29]    INFO    jenkins.install.SetupWizard#init: 

*************************************************************
*************************************************************
*************************************************************

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

754547907ce14281b349837d4acd8786

This may also be found at: /var/jenkins_home/secrets/initialAdminPassword

*************************************************************
*************************************************************
*************************************************************

2022-09-27 20:45:48.128+0000 [id=49]    INFO    h.m.DownloadService$Downloadable#load: Obtained the updated data file for hudson.tasks.Maven.MavenInstaller
2022-09-27 20:45:48.129+0000 [id=49]    INFO    hudson.util.Retrier#start: Performed the action check updates server successfully at the attempt #1
2022-09-27 20:45:48.131+0000 [id=49]    INFO    hudson.model.AsyncPeriodicWork#lambda$doRun$1: Finished Download metadata. 12,634 ms
2022-09-27 20:45:48.226+0000 [id=29]    INFO    jenkins.InitReactorRunner$1#onAttained: Completed initialization
2022-09-27 20:45:48.235+0000 [id=23]    INFO    hudson.lifecycle.Lifecycle#onReady: Jenkins is fully up and running

排查与解决方法

1. 补全容器端口映射

你的docker run命令未配置端口映射,容器内部8080端口并未暴露给主机。重新启动容器时添加端口映射参数:

docker run -p 8080:8080 c1ae8e3564e4
  • -p 主机端口:容器端口:将主机指定端口与容器端口绑定,确保主机能访问容器内服务

2. 检查容器运行状态

执行命令查看容器是否正常运行:

docker ps

如果容器未运行,先清理旧容器再重启:

# 替换<容器ID>为实际ID,可通过docker ps -a查看
docker stop <容器ID>
docker rm <容器ID>

3. 检查主机端口占用情况

MacOS上用以下命令检查8080端口是否被其他进程占用:

lsof -i :8080

若端口被占用,可杀掉占用进程,或更换主机端口启动:

docker run -p 8081:8080 c1ae8e3564e4

之后访问http://localhost:8081/

4. 验证容器内部服务可用性

进入容器内部,测试Jenkins服务是否正常:

docker exec -it <容器ID> bash
curl localhost:8080

若返回Jenkins页面内容,说明容器内部服务正常,问题出在端口映射或主机网络配置。

5. 重置Docker网络配置

打开Docker Desktop偏好设置,进入Resources->Network,点击Reset to factory defaults,重启Docker后再启动Jenkins容器。

内容的提问来源于stack exchange,提问作者Autechre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 06:10:31