Docker组成对主机端口的访问

时间:2017-11-07 11:07:24

标签: docker docker-compose

我正在运行另一个docker-compose,在端口5044上公开Logstash(使用docker-elk)。我能够在我的主机上的localhost:5044上向服务发出请求,因此端口被正确暴露。

我然后运行另一个docker-compose(Filebeat)但是从那里我无法连接到" localhost:5044"。这是docker撰写文件:

version: '2'

services:

  filebeat:
    build: filebeat/
    networks:
      - elk

networks:

  elk:
    driver: bridge

为什么localhost:5044在这个docker中无法访问?是什么?

1 个答案:

答案 0 :(得分:4)

首先,您链接的撰写文件会公开端口5000,但您说您正尝试连接到端口5044.

其次,暴露端口5044(或5000)将使端口可用于主机,而不是使用其他撰写文件启动的其他容器。

我看到的方式是你可以:

  • 按原样保留第一个服务,而不是secon服务上的localhost:port使用your_ip:port,其中your_ip可以从ifconfig -a或类似的东西中检索,看起来应该像{{1} }

  • 将这两项服务连接到外部创建的网络,如下所示:

    • 首先使用192.168.x.x
    • 创建网络
    • 将服务链接到撰写文件中的外部网络:

docker network create foo

然后访问权限将日程表引用从networks: test_network: external: true更改为localhost:port

祝你好运