我正在运行另一个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中无法访问?是什么?
答案 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