我有一个包含多个服务容器定义的docker-compose
文件。其中一个服务与同一docker-compose
运行中的Apache Kafka
进行通信。
因此,我的kafka docker定义如下:
kafka:
image: spotify/kafka
ports:
- "2181:2181"
- "9092:9092"
environment:
ADVERTISED_HOST: 127.0.0.1
ADVERTISED_PORT: 9092
我在同一个docker-compose文件中定义了我的服务。在服务的启动脚本中,我需要想办法找到Kafka实例的IP地址。
我知道,我可以使用类似于“docker inspect”的方式来查找容器使用的IP地址。
但是,在docker-compose环境中如何动态地执行此操作呢?
编辑:
所以,正确的配置应该是(谢谢@nwinkler):
kafka:
image: spotify/kafka
ports:
- "2181:2181"
- "9092:9092"
environment:
ADVERTISED_HOST: kafka
ADVERTISED_PORT: 9092
myservice:
image: foo
links:
- kafka:kafka
不要忘记将ADVERTISED_HOST
设置为kafka
(或者你在docker-compose
中命名的kafka容器名称)。
kafka
作为主机名连接到kafka
容器。 - tkausl