从Docker容器访问外部端口

时间:2018-09-11 21:07:56

标签: docker networking

我已经读过thisthisthis

尽管这个问题被问了很多遍,但我还是不明白,这似乎没有定论。在发布可能的副本之前,请考虑一下。

在我的Ubuntu 16上,我有一个容器,该容器必须访问该容器外部的服务。无法使用--network="host",因为这与我使用Docker的目的背道而驰。另外,the documentation说:“桥式网络通常在您的应用程序在需要通信的独立容器中运行时使用”。

因此,通过选择bridge网络方法,我尝试了解决方案here(到目前为止,这是在线上最受欢迎的问答)。使用容器内的“ route”命令获取主机IP的地方:

export DOCKER_HOST_IP=$(route -n | awk '/UG[ \t]/{print $2}')

有两个问题:

1:这是满足这种琐碎需求的最直接的解决方案吗?

2:我在节点应用程序的容器中执行此操作:

 await execSync("route -n | awk '/UG[ \t]/{print $2}'", (err, stdout,stderr) =>{
        if (err) {
            console.error("Failed: " + err);
            return;
        }
        if (stdout)
            console.log(stdout);
        if (stderr)
            console.error(stderr);
    });

(预期的)结果如下:

/bin/sh: 1: route: not found

我尝试过--add-host solution,但是我如何知道要使用的IP地址? 换句话说,这个IP是从哪里来的?

--add-host=testing.example.com:10.0.0.1

0 个答案:

没有答案