我正在使用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-compose在它们之间创建一个虚拟网络
对于能够进行通信的容器,他们需要共享虚拟网络。
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进行通信
在https://github.com/Landoop/kafka-connectors-tests,您可以看到多个docker组合在一起,即fast-data-dev
+ elastic-search
,以便通过在Kafka上生成数据来运行集成测试,然后运行https://github.com/Landoop/stream-reactor Kafka连接器将数据写入弹性搜索等等。
集成测试的结果发布在: