"Failed to resolve IP"; "Lookup error" 在 bash 脚本中加入 dockerized 农奴代理

"Failed to resolve IP"; "Lookup error" in bash script when joining dockerized serf agents

[上下文:主机是 AWS-EC2 / Ubuntu 14.04.5,Docker 版本 17.05.0-ce。容器是从公开可用的 repo 图像 cbhihe/serf-alpine-bash 构建的。容器位于同一个 EC2 实例上,共享同一个默认桥接网络以及实例的 eth0 接口。]

此问题基于 另一个问题。

使用两个 运行ning docker 容器,每个容器中都有一个实时 serf 代理,我想从无人值守的 bash脚本,在两个容器运行所在的主机上执行。

容器 "DC2" 中的一个农奴代理加入容器 "DC1" 中私有 IP 172.17.0.2 的另一个农奴代理,我的脚本如下所示:

docker run -d --name DC1 --rm cbhihe/serf-alpine-bash agent -node=NODE1 -iface=eth0
docker run -d --name DC2 --rm cbhihe/serf-alpine-bash agent -node=NODE2 -iface=eth0
docker exec -d DC2 serf join 172.17.0.2

前两行产生了预期的结果,即 2 运行ning 容器。第三行似乎失败了:

两种方式的加入都不会发生。
从控制台执行完全相同的操作完美无缺。

我查看了在脚本的 bash shebang 上下文中导入主机环境。没有成功。欢迎指点。发送

根据您问题中的信息,我认为可能存在对设置环境变量的 shell 的依赖性。

尝试执行 bash 启动的 serf。像这样:

docker exec "$cont_id" bash -c 'serf join '"$join_IP"