docker:重用另一个容器';s网络堆栈并连接到该容器
我正在尝试使用它向其他容器提供VPN。我正在尝试使以下设置正常工作:docker:重用另一个容器';s网络堆栈并连接到该容器,docker,networking,vpn,Docker,Networking,Vpn,我正在尝试使用它向其他容器提供VPN。我正在尝试使以下设置正常工作: 使用bubuntux/nordvpn定义vpn服务 使用network\u模式:service:vpn访问互联网,定义一个容器foo 定义另一个容器bar,同时使用network\u mode:service\u vpn访问互联网 到目前为止,这就像一个魅力-然而,现在我想让foo和bar能够相互连接(例如,这样bar可以运行curlhttp://foo,它可以工作),同时仍然使用vpn连接到外部。这可能吗 下面是一个简单的演
vpn
服务network\u模式:service:vpn
访问互联网,定义一个容器foo
bar
,同时使用network\u mode:service\u vpn
访问互联网foo
和bar
能够相互连接(例如,这样bar
可以运行curlhttp://foo
,它可以工作),同时仍然使用vpn连接到外部。这可能吗
下面是一个简单的演示docker compose
(只需填写用户名和密码):
bar
中的curl命令将失败:
bar_1 | curl: (6) Could not resolve host: foo
bar_1 | curl: (6) Could not resolve host: foo
...
如何实现这一点?您可以使用
localhost
,而不是foo
,因为您的容器共享一个网络名称空间。这似乎不起作用-但是,我可以通过在创建的网络上执行docker network inspect
来获得正确的ip使用。这应该绝对有效,我鼓励你用你用来测试的特定命令来更新你的问题。发布这样的端口的一个关键原因是,您不需要使用docker inspect
来查找容器ip。您可以使用localhost
而不是foo
,由于您的容器共享一个网络名称空间.Hm,这似乎不起作用-但是,通过在创建的网络上执行docker network inspect
,我能够获得正确的ip使用。这应该绝对有效,我鼓励您使用用于测试的特定命令更新您的问题。发布这样的端口的一个关键原因是,您不需要使用docker inspect
来查找容器ip。
bar_1 | curl: (6) Could not resolve host: foo
bar_1 | curl: (6) Could not resolve host: foo
...