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