jenkins作为docker集装箱运行时无法访问互联网

我正在运行jenkinsdocker的形象 。 它启动时,抱怨说不能访问互联网。

这是我如何运行它:

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实例似乎处于脱机状态。

有关在没有Internet连接的情况下安装Jenkins的信息,请参阅离线Jenkins安装文档。

您可以select继续configuration代理或跳过插件安装。

在这里输入图像说明

我的系统中没有代理(家用笔记本电脑)。 我想这可能是一个不起眼的docker问题,但是:

  1. 我找不到任何这个问题的参考
  2. 由于这是通常的方式,人们将运行jenkinsdocker形象,我觉得这是令人惊讶的是,这不是开箱即用

难道我做错了什么?

编辑

只是为了确保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 

EDIT2

运行连接到hostnetworking的容器解决了问题,让jenkins访问互联网:

 docker run -d --net host -v jenkins-shared-volume:/var/jenkins_home -t --name jenkins jenkins 

但是我不能映射端口:jenkins可以在http:// localhost:8080上直接访问,当其他服务使用8080端口时,jenkins可能是冲突的来源。

奇怪的是我昨天晚上用官方的jenkins形象碰到了同样的问题:

  docker run -p 8080:8080 --rm jenkins/jenkins 

虽然我还没有弄清楚为什么还是如何永久解决,我确实find了解决办法。

使用较旧的不支持的图像jenkins启动图像…执行初始设置..然后closures它,交换图像并启动官方。

这里的参考是我的docker-compose.yml:

 version: "2" services: app: image: jenkins #after booting and initial setup swap to jenkins/jenkins ports: - "50000:50000" - "8080:8080" volumes: - home:/var/jenkins_home volumes: home: