我正在尝试理解docker-compose.yml
(也显示在本文的底部)。
问题: confluent:2181
用于以下行
KAFKA_ZOOKEEPER_CONNECT: "confluent:2181"
这个confluent
主机名是如何定义的?如果我正确理解了Docker中的主机名,则唯一的容器主机名是zookeeper
,kafka
,rest-proxy
和schema-registry
。
docker-compose.yml
version: "2"
services:
zookeeper:
image: confluent/zookeeper
ports:
- "2181:2181"
environment:
zk_id: "1"
network_mode: "host"
kafka:
image: confluent/kafka
depends_on:
- zookeeper
ports:
- "9092:9092"
environment:
KAFKA_ZOOKEEPER_CONNECT: "confluent:2181"
network_mode: "host"
rest-proxy:
image: confluent/rest-proxy
depends_on:
- zookeeper
- kafka
- schema-registry
ports:
- "8082:8082"
environment:
RP_ZOOKEEPER_CONNECT: "confluent:2181"
RP_SCHEMA_REGISTRY_URL: "http://confluent:8081"
network_mode: "host"
schema-registry:
image: confluent/schema-registry
depends_on:
- kafka
- zookeeper
ports:
- "8081:8081"
environment:
SR_KAFKASTORE_CONNECTION_URL: "confluent:2181"
network_mode: "host"
答案 0 :(得分:1)
您是对的。根据{{1}},所定义的服务将仅为docker-compose.yml
,zookeeper
,kafka
和rest-proxy
提供DNS解析,而不为schema-registry
提供DNS解析。
但是,如果您take a look at the documenttion from confluentinc,则要求您修改主机中的主机文件:
编辑您的主机文件并为Docker计算机添加主机条目。
192.168.99.100汇合
这就是为什么您可以使用confluent
并获得名称解析的原因。它与docker或compose无关。
P.S:请注意,您正在使用不推荐使用的图像according to their documentation
答案 1 :(得分:1)
是的,你是对的。
根据README,您应该先汇合。