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
祝你好运