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

Python 从容器访问Docker compose容器主机名,python,docker,containers,docker-compose,hostname,Python,Docker,Containers,Docker Compose,Hostname,我正在尝试设置一个应用程序,作为对等采样服务。每个节点将在一个单独的容器上运行,为了便于使用,我会有一个跟踪器,它将为每个节点提供其初始视图 对于跟踪器,我将它作为一个具有简单RESTAPI的Python3.5Web服务器运行。联系时,它调用docker compose-Htcp://hostip:2375 ps获取容器及其主机名的列表 奇怪的是,当这个容器执行这个命令时,docker守护进程会给出一个空列表,而如果我不是从容器而是从我的计算机,甚至是从同一个本地网络上的另一台计算机询问这个守护

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

对于跟踪器,我将它作为一个具有简单RESTAPI的Python3.5Web服务器运行。联系时,它调用
docker compose-Htcp://hostip:2375 ps
获取容器及其主机名的列表

奇怪的是,当这个容器执行这个命令时,docker守护进程会给出一个空列表,而如果我不是从容器而是从我的计算机,甚至是从同一个本地网络上的另一台计算机询问这个守护进程,它就可以正常工作

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

这是我的文件

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\u output=subprocess。检查\u output('docker-compose-H tcp://:2375 ps',shell=True)。decode().splitlines()

如果在python之外的容器中运行命令本身,输出是什么。任何错误输出?是的,没有错误输出。容器内外的
docker-H tcp://:2375 info
输出是否相同(使用主机ip)?它们是相同的。我试着把docker.sock放在容器里,而不是放在容器里tcp://... 如果您在python之外的容器中运行命令本身,那么输出是什么呢。任何错误输出?是的,没有错误输出。容器内外的
docker-H tcp://:2375 info
输出是否相同(使用主机ip)?它们是相同的。我试着把docker.sock放在容器里,而不是放在容器里tcp://... 这也没用。