我正在使用下面的命令docker run -it -p 2181:2181 --name zookeeper zookeeper运行单节点动物园管理员码头映像。为了运行卡夫卡码头图像,我需要共享作为ENV变量的动物园码头图像的IP地址,并更新卡夫卡server.properties文件。
通过码头检查,可以获取动物园管理员图像的IP地址,并在卡夫卡的docker run中传递。
但是有什么方法可以在码头集装箱之间自动检测和共享IP地址吗?
我可以看到一些使用链接的例子,但在最新的docker文档中,这似乎是不可取的。
感谢任何建议/帮助
谢谢
发布于 2018-03-19 19:17:00
码头组成是解决您的情况的完美解决方案。
默认情况下,Compose为您的应用程序设置一个网络。服务的每个容器都加入了默认网络,并且可以被网络上的其他容器访问,并且可以在主机名与容器名称相同的主机名上被发现。
对于您的情况,docker-compose.yaml类似于下面的一个:
version: '3'
services:
zookeeper:
image: <zookeeper_image_name>
restart: always
ports:
- 2181:2181
kafka:
image: <kafka_image_name>
restart: always卡夫卡容器应该在zookeeper文件中将server.properties作为动物园管理员的主机名。
https://stackoverflow.com/questions/49369272
复制相似问题