我正在运行 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 上运行.但它存在连接问题:
Offline This Jenkins instance appears to be offline.
For information about installing Jenkins without an internet connection, see the Offline Jenkins Installation Documentation.
You may choose to continue by configuring a proxy or skipping plugin installation.
我的系统(家用笔记本电脑)中没有代理。我想这可能是一个不起眼的 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 端口时,这可能是冲突的根源。
最佳答案
奇怪的是,我昨晚在使用 Jenkins 官方图片时遇到了同样的问题:
docker run -p 8080:8080 --rm jenkins/jenkins
虽然我还没有弄清楚原因或如何永久修复它,但我确实找到了解决方法。
使用旧的不受支持的图像 jenkins 启动图像...进行初始设置..然后将其关闭,交换图像并启动官方。
这里是我的 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:
关于proxy - Jenkins作为docker容器运行时无法访问互联网,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39709941/