从docker容器访问本地主机端口

问题描述 投票:2回答:3

我正在使用Landoop快速数据开发并暴露容器的端口-p 2181:2181 -p 3030:3030 -p 8081:8081 -p 8082:8082 -p 9092:9092。

docker run --rm -it -p 2181:2181 -p 3030:3030 -p 8081:8081 -p 8082:8082 
 -p 9092:9092 -e ADV_HOST=127.0.0.1 --name=containerA landoop/fast-data-dev

当我通过localhost在主机上使用时,可以访问它们。但是当我运行另一个容器时

docker run -it --rm --net=host --name containerB mytest/containerB

1)如何从containerB访问containerA的上述暴露端口?我确实知道MAC我们必须使用docker.for.mac.localhost而不是localhost。我如何确认这些端口是否可以从docker.for.mac.localhost(即containerB)访问?任何帮助表示赞赏。谢谢。

docker
3个回答
0
投票

为了让两个不同的容器协同工作,我使用docker-compose在它们之间创建一个虚拟网络

官方文件:https://docs.docker.com/compose/networking/#links


0
投票

对于能够进行通信的容器,他们需要共享虚拟网络。

docker network create my-net

docker run --rm -it --network my-net -p 2181:2181 -p 3030:3030 -p 8081:8081 -p 8082:8082 -p 9092:9092\
 -e ADV_HOST=127.0.0.1 --name=containerA landoop/fast-data-dev

docker run -it --rm  --network my-net --name containerB mytest/containerB

现在,containerB可以使用http://containerA:<port>与containerA进行通信


0
投票

https://github.com/Landoop/kafka-connectors-tests,您可以看到多个docker组合在一起,即fast-data-dev + elastic-search,以便通过在Kafka上生成数据来运行集成测试,然后运行https://github.com/Landoop/stream-reactor Kafka连接器将数据写入弹性搜索等等。

集成测试的结果发布在:

http://coyote.landoop.com/connect/

© www.soinside.com 2019 - 2024. All rights reserved.