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

在Docker Ubuntu镜像中手动安装Jenkins后无法从宿主机访问如何解决

容器内Jenkins服务宿主机访问方案

Docker容器默认使用隔离的网络命名空间,宿主机无法直接访问容器内部监听的端口,Jenkins默认在容器内监听8080端口,你可以根据场景选择以下两种方案实现访问:

场景1:可重启当前容器(推荐长期使用)

你已经在当前容器内完成了JDK和Jenkins的配置,首先需要将当前容器保存为镜像避免配置丢失:

  • 提交当前容器为自定义镜像:docker commit 42024442b87b my-jenkins:v1
  • 停止当前运行的旧容器:docker stop 42024442b87b
  • 基于自定义镜像启动带端口映射的新容器:docker run -d -p 8080:8080 -p 50000:50000 --name my-jenkins my-jenkins:v1 service jenkins start
    其中-p 宿主机端口:容器端口为端口映射参数,8080为Jenkins web服务端口,50000为Jenkins agent节点通信端口,你可以根据需求修改宿主机侧的端口号,只要保证宿主机端口未被占用即可。
  • 配置完成后直接在宿主机浏览器访问http://localhost:8080即可进入Jenkins初始化页面,首次访问需要的初始管理员密码,可以进入容器后执行cat /var/lib/jenkins/secrets/initialAdminPassword获取。

场景2:不可重启当前运行的容器

你可以通过配置宿主机iptables规则实现端口转发,无需重启容器:

  • 先查询当前容器的内部IP地址:docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 42024442b87b,执行后会返回类似172.17.0.2的容器内网IP
  • 在宿主机执行iptables规则配置,将宿主机8080端口的流量转发到容器内部的8080端口:iptables -t nat -A DOCKER -p tcp --dport 8080 -j DNAT --to-destination <替换为上一步查到的容器内网IP>:8080
  • 配置完成后即可在宿主机访问http://localhost:8080使用Jenkins
    注意:该iptables规则在宿主机重启后会失效,仅适合临时调试使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:06:04