我有一個docker-compose
文件,其中包含多個服務容器定義。其中一項服務與Apache Kafka
在同一碼頭組合運行中進行通信。找出Docker容器中的IP地址
所以我有卡夫卡泊塢窗的定義是這樣的:
kafka:
image: spotify/kafka
ports:
- "2181:2181"
- "9092:9092"
environment:
ADVERTISED_HOST: 127.0.0.1
ADVERTISED_PORT: 9092
我有同樣的搬運工,撰寫文件,我的服務定義。在服務的啓動腳本中,我必須弄清楚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'容器。 – tkausl