Docker容器和主机网络VPN

mm9b1k5b  于 2022-11-22  发布在  Docker
关注(0)|答案(7)|浏览(316)

我试图在MacOS上运行Docker映像与VPN打开(TUN设备)。Docker容器可以访问互联网,但无法访问VPN背后的资源。什么是正确的方法,使Docker去VPN网络?
我试过docker run --net host让Docker共享主机网络,没有帮助。主机可以访问VPN资源,Docker容器无法解析它们的名称。

ycggw6v2

ycggw6v21#

我 不得 不 重新 启动 Docker 后 , 主机 连接 到 VPN .
x1月 1 日

iyr7buue

iyr7buue2#

不 确定 这 是否 是 最 佳 解决 方案 。
连接 到 VPN 后 , 我 在 主机 上 显示 DNS

scutil --dns | grep 'nameserver\[[0-9]*\]'
nameserver[0] : xxx.xxx.xxx.xxx

中 的 每 一 个
修改 了 Docker 运行 命令 :

docker run --cidfile="docker.pid" --dns=xxx.xxx.xxx.xxx --publish-all

格式
现在 码头 集装 箱 可以 访问 VPN 背后 的 资源 ... 它 的 工作 , 但 我 不 知道 它 是 好 是 坏 ...

epggiuax

epggiuax3#

我遇到了这个问题。我尝试了这里建议的其他解决方案,但它们对我不起作用。经过大量的试验和错误后,这个解决方案非常好用:
将“bip”:“192.168.1.5/24“添加到daemon.json配置文件中。此文件可以在Docker引擎下的Docker桌面设置中或在/etc/docker/daemon. json中找到。BIP是网桥IP地址的设置,将更改Docker在其子网中分配的IP。通过更改此设置,我避免了VPN和Docker IP地址之间的冲突。
重新启动Docker守护程序。
停止所有容器。
运行“Docker网络修剪”以删除未使用的网络。
重新启动所有容器。这将使用新的IP地址重新创建其网络。
以后连接到VPN后,您可能仍然需要重新启动Docker。请参阅此主题了解其他解决方案和想法:https://github.com/docker/for-mac/issues/2820

8yoxcaq7

8yoxcaq74#

有一个类似的问题。OP的解决方案工作,但也只是重新启动我的docker虚拟机:

docker-machine restart $host

灵感来源:https://www.reddit.com/r/docker/comments/39z4xd/when_my_docker_host_is_connected_to_vpn_i_can_no/

nhhxz33t

nhhxz33t5#

在Mac上运行的Docker版本3.6.0(67351)上存在此问题
对我有效的是结合了@谢里丹Rea和@Marco发布的解决方案
1.已将Docker子网更改为192.168.65.0/28。之前设置为192.168.63.0/24。单击“应用并重新启动”/“重新启动Docker”
1.运行docker network prune
1.运行docker compose up
简单地更改Docker子网对我不起作用
现在我可以ping VPN后面的IP地址

ny6fqffe

ny6fqffe6#

对我有效的方法是把docker的子网掩码从/24改为/28,然后重新启动,我现在可以ping,telnet和我的vpn网络上的其他东西。它说默认值是/28,但是docker桌面上有/24。也许是打错了,我不知道。

bkhjykvo

bkhjykvo7#

不知道为什么,但正如其他人在这里建议的那样,更改Docker子网起作用了。唯一不同的是,在Docker Desktop for Windows V4. 14. 0上,将子网设置为/28不起作用。

但只需将子网IP地址从www.example.com迁移192.168.65.0/24到192.168.66.0/24就可以了。

相关问题