Kyr*_*ann 12 ubuntu vpn centos6 docker
在我现在所在的项目中,我们在 VPN 后面设置了 Github Enterprise,所以我使用 OpenVPN 连接我的桌面(Ubuntu 14.04 LTS),但是当我尝试使用 Docker(使用 Centos6)构建时,我总是得到ssh: Could not resolve hostname github.xxx.xxx: Name or service not known.
我查看了 Docker 文档,但看起来它只是使用代理或网桥解决问题,而 Google 只返回有关如何在 Docker 映像上设置 OpenVPN 的答案。
然后我转向 Stackoverflow 并希望得到关于如何运行sudo docker build image并让它使用我的 VPN 从 Github 克隆的答案。
此外,我们的 Mac 用户已经安装了 Boot2Docker,并且构建镜像没有问题。
小智 10
我尝试了各种方法,最后最简单的方法对 Ubuntu 18.04 有所帮助。停止和启动 docker 守护进程。
先决条件:VPN 关闭
sudo systemctl stop docker
---> Start VPN
sudo systemctl start docker
Run Code Online (Sandbox Code Playgroud)
希望会帮助某人。
如果我理解正确,您希望在构建 docker 镜像期间通过 VPN 访问 svn 存储库,即 Dockerfile 的指令之一必须解析主机名。
如果您的问题与域名解析有关,您可以使用--add-host选项(请参阅文档)docker-build将 IP 显式映射到相关主机名。请注意,它可能需要相对较高的 docker 版本。
docker build --add-host host_name:host_IP .
Run Code Online (Sandbox Code Playgroud)
另请参阅有用的相关帖子。
小智 4
这可能是两个问题之一:
1)域名系统
2) 您的桌面的路由表
我的具体案例(也是 Ubuntu 14.04)结果是路由表。这就是我下面要经历的。
要确定 DNS 是否存在问题,您能否从容器内部成功 ping 通 IP?
docker run -i -t ubuntu:14.04 /bin/bash
root@44445bfefc4e:/# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=54 time=76.1 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=54 time=75.6 ms
Run Code Online (Sandbox Code Playgroud)
如果这种方法可行,但在您连接到 VPN 时您的容器仍然无法访问,请检查您的路由。
断开 VPN 连接并使用 检查您的路由route。这是我的输出作为示例:
Destination Gateway Genmask Flags Metric Ref Use Iface
default DD-WRT 0.0.0.0 UG 0 0 0 wlan0
172.17.0.0 * 255.255.0.0 U 0 0 0 docker0
192.168.1.0 * 255.255.255.0 U 9 0 0 wlan0
192.168.122.0 * 255.255.255.0 U 0 0 0 virbr0
Run Code Online (Sandbox Code Playgroud)
在那里,您将看到 Docker 的网络 ( 172.17.0.0)。
现在,连接到您的 VPN 并重新发出命令。您的里程可能会有所不同,但我发现路线表中存在重复条目:
172.17.0.0 * 255.255.0.0 U 0 0 0 vpn0
172.17.0.0 * 255.255.0.0 U 0 0 0 docker0
Run Code Online (Sandbox Code Playgroud)
服务器正在推送重复的路由!
就我而言,我不需要这些路由来成功导航 VPN,因此我找到了禁用它们的方法。我使用 OpenVPN,因此我深入查看对话框中的设置并选中“忽略自动获取的路由”。
该图片来自这篇博文。
检查并重新连接到 VPN 后,我不再有重复的条目,并且我的 Docker 容器能够连接到 Internet 和 VPN 内的主机。
| 归档时间: |
|
| 查看次数: |
11679 次 |
| 最近记录: |