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

时间:2016-06-11 16:20:20

标签: python docker containers docker-compose hostname

我正在尝试设置一个可用作对等采样服务的应用。每个对等体都运行在一个单独的容器上,为了便于使用,我有一个跟踪器可以为每个对等体提供初始视图。

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

奇怪的是,当这个容器执行这个命令时,docker守护进程会回答一个空列表,而如果我要求这个守护进程不是来自容器,而是来自我的计算机,甚至来自同一本地网络上的其他计算机,它可以正常工作。

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

这是我的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()

0 个答案:

没有答案