一种测试Docker中运行的进程是否在同一主机上的方法

一种测试Docker中运行的进程是否在同一主机上的方法

问题描述:

假设我有两个进程在单个计算机/主机上运行Docker内部的C++代码(单独的映像)。一种测试Docker中运行的进程是否在同一主机上的方法

如何确定这些进程是否共享相同的主机(通过编写在容器内运行的C++代码/ Linux命令)。

编辑

VonC提到从外面添加该信息,并“帮助集装箱”有更多的见解,但我想办法从里面这样做没有进入Dockerfile和/或码头启动环境。

+0

请问你的问题,用亲和参数的容器编排引擎(如群,kubernetes或Mesos)来解决。指示您的容器应该彼此分开部署,并让引擎完成其余部分 –

+0

我正在寻找独立于Docker/Orchestrations的方式。我将编辑该问题强调 –

正如issues 1143中提到的,也许你可以检查主机的ip。如果它们在两个容器中都相同,则应该在同一主机上运行。

注意:有时您需要连接到Docker主机,这意味着获取主机的IP地址。
您可以使用以下shell命令来简化这个过程:

$ alias hostip="ip route show 0.0.0.0/0 | grep -Eo 'via \S+' | awk '{ print \$2 }'" 
$ docker run --add-host=docker:$(hostip) --rm -it debian 

的另一种选择是pass the docker host when running the container

当你在做搬运工运行,添加以下参数:--add-host=dockerhost:replace_with_docker_host_ip,它在容器的/etc/hosts文件中创建一个条目。
当然,这意味着您可以使用其名称dockerhost从该容器内引用您的码头主机。

请参阅“Adding entries to a container hosts file

+0

谢谢,但我正在寻找独立于外部添加的方式。我会编辑这个问题来强调 –