Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.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
docker:重用另一个容器';s网络堆栈并连接到该容器_Docker_Networking_Vpn - Fatal编程技术网

docker:重用另一个容器';s网络堆栈并连接到该容器

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。我正在尝试使以下设置正常工作:

  • 使用bubuntux/nordvpn定义
    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
    ...