从容器访问Docker-compose容器主机名

我正在尝试设置一个作为对等采样服务的应用程序。 每个同行将运行在一个单独的容器,为了便于使用,我会有一个跟踪器,将给每个同行的初始视图。

对于跟踪器,我将它作为具有简单REST API的Python 3.5 Web服务器运行。 当联系时,它会调用docker-compose -H tcp://hostip:2375 ps来获取容器列表和它们的主机名。

奇怪的是,当这个容器执行这个命令的时候,docker守护进程会回答一个空的列表,而如果我问这个守护进程不是从容器中,而是从我的计算机,甚至从同一个本地networking上的其他计算机上,它工作正常。

我不知道为什么守护进程会发送两个不同的结果。

这是我的Dockerfile

 FROM python:3.5.1 # RUN pip install pydevd ADD . /code WORKDIR /code EXPOSE 4321 RUN echo 'starting Tracker' CMD [ "python", "./scripts/tracker.py" ] 

我的docker-compose.yml

 version: '2' services: pss: build: . tracker: expose: - "4321" build: context: . dockerfile: Dockerfile-tracker 

和python文件中的一行: ps_output = subprocess.check_output('docker-compose -H tcp://<daemon_host_ip>:2375 ps', shell=True).decode().splitlines()