【发布时间】:2017-02-04 05:11:47
【问题描述】:
我正在运行jenkins docker image。启动时,它抱怨无法访问互联网。
这就是我运行它的方式:
docker pull jenkins
mkdir jenkins-shared-volume
docker run -d -p 49001:8080 -p 50000:50000 -v jenkins-shared-volume:/var/jenkins_home -t --name jenkins jenkins
jenkins 实例随后在http://localhost:49001 上运行。但它存在连接问题:
离线 此 Jenkins 实例似乎处于离线状态。
有关在没有互联网的情况下安装 Jenkins 的信息 连接,请参阅离线 Jenkins 安装文档。
您可以选择通过配置代理或跳过插件来继续 安装。
我的系统(家用笔记本电脑)中没有代理。我想这可能是一个不起眼的 docker 问题,但是:
- 我找不到有关此问题的任何参考资料
- 由于这是人们运行 jenkins docker 映像的常用方式,我发现这不是开箱即用的,这让我感到惊讶
我做错了吗?
编辑
只是为了确保 docker 容器确实可以直接访问互联网:
docker exec -it jenkins /bin/bash
jenkins@4ef4944a7cb7:/$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=44 time=29.859 ms
编辑2
运行连接到host网络的容器可以解决问题,让jenkins访问互联网:
docker run -d --net host -v jenkins-shared-volume:/var/jenkins_home -t --name jenkins jenkins
但我无法映射端口:jenkins 可以在http://localhost:8080 上直接访问,每当其他服务使用 8080 端口时,这可能是冲突的根源。
【问题讨论】:
-
我认为您的问题也将与 SO 相关,并且您可能会在那里找到更多 Jenkins 专家。
-
+1 有同样的问题 - 您是否有机会在 Vagrant 框中测试/运行您的 docker 设置? (笑)
-
@delavnog 出于好奇 - 你在使用 iptables 吗?如果是这样,您的配置是什么样的?开始认为这是由我的 iptables 拒绝配置和 docker 对 iptables 配置的处理之间的冲突引起的问题
-
对这个问题有什么新的看法吗?