我使用下面的命令运行单节点zookeeper docker image
docker run -it -p 2181:2181 --name zookeeper zookeeper
。
为了运行kafka docker镜像,我需要将zookeper docker镜像的IP地址作为ENV变量共享,并更新kafka server.properties文件。
使用docker inspect,我可以获取zookeeper图像的IP地址,并在kafka的docker run
期间传递它。
但是有没有办法在docker容器之间自动检测和共享IP地址。
我可以看一些使用--link的例子,但在最新的docker文档中,它似乎已被弃用。
感谢任何建议/帮助
由于
答案 0 :(得分:2)
urls.py是您案例的完美解决方案。
默认情况下,Compose会为您的应用设置单个网络。每 服务容器加入默认网络,两者都是 该网络上的其他容器可以访问,并且可以被发现 它们的主机名与容器名相同。
version: '3'
services:
zookeeper:
image: <zookeeper_image_name>
restart: always
ports:
- 2181:2181
kafka:
image: <kafka_image_name>
restart: always
类似于以下情况:
zookeeper
Kafka容器应该server.properties
作为{{1}}文件中的zookeeper主机名。