Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Networking Docker容器和主机网络VPN_Networking_Docker_Vpn - Fatal编程技术网

Networking Docker容器和主机网络VPN

Networking Docker容器和主机网络VPN,networking,docker,vpn,Networking,Docker,Vpn,我正在尝试在打开VPN(TUN设备)的MacOS上运行docker映像。Docker容器可以访问internet,但不能访问vpn后面的资源。让Docker进入VPN网络的正确方法是什么 我试过了 docker run--net host要让docker共享主机网络,它没有帮助。 主机可以访问VPN资源,docker容器无法解析它们的名称。不确定这是否是最佳解决方案 我接受了连接到VPN后出现在主机上的DNS scutil --dns | grep 'nameserver\[[0-9]*\]'

我正在尝试在打开VPN(TUN设备)的MacOS上运行docker映像。Docker容器可以访问internet,但不能访问vpn后面的资源。让Docker进入VPN网络的正确方法是什么

我试过了
docker run--net host
要让docker共享主机网络,它没有帮助。
主机可以访问VPN资源,docker容器无法解析它们的名称。

不确定这是否是最佳解决方案

我接受了连接到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

现在docker容器可以访问VPN后面的资源。。。它能工作,但我不知道它是好是坏…

也有类似的问题。OP的解决方案奏效了,但重启docker虚拟机也是如此:

docker-machine restart $host

灵感:

在将主机连接到VPN后,我不得不重新启动docker

sudo systemctl重启docker

docker start{name of container}

我最近构建了一个VPN容器,需要
--privileged
,在我的情况下,
--net host
不是必需的。对于任何ubuntu用户:在使用NetworkManager处理VPN连接的ubuntu上,
--net host
足以共享VPN连接@schmunk As
--privileged
开启所有功能,因此在安全性方面是一个巨大的缺陷,您应该尝试只识别关键功能(
NET\u ADMIN
?),并只启用此功能。进一步阅读:@Murmel您应该将此评论作为ubuntu用户的答案,这是我的解决方案(ubuntu 18.04)。