Docker组成对主机端口的访问

我正在运行另一个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 

任何cluye为什么localhost:5044在这个docker不可访问组成?

首先,你链接的撰写文件公开了端口5000,但是你说你正试图连接到端口5044。

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

我看到的方式是你可以:

  • 保留第一个服务,而不是secon服务上的localhost:port使用your_ip:port,其中your_ip可以从ifconfig -a或类似的东西中获取,应该看起来像192.168.xx

  • 将两个服务连接到外部创build的networking,如下所示:

    • 先用docker network create foo创buildnetworking
    • 在撰写文件中将服务链接到外部networking:

networks: test_network: external: true

然后访问将logstash引用从localhost:port更改为logstash:port

祝你好运