架构注册表容器:使用docker compose启动时服务器意外死亡
我已经编写了docker-compose.yml文件来创建以下容器: 合流动物园管理员 合流卡夫卡 合流模式注册表 我想要一个docker compose文件来旋转必要的容器,公开所需的端口并互连相关的容器。目标是拥有 我使用的是Docker Hub的官方合流图像。 我的docker compose文件如下所示:架构注册表容器:使用docker compose启动时服务器意外死亡,docker,apache-kafka,docker-compose,confluent-platform,confluent-schema-registry,Docker,Apache Kafka,Docker Compose,Confluent Platform,Confluent Schema Registry,我已经编写了docker-compose.yml文件来创建以下容器: 合流动物园管理员 合流卡夫卡 合流模式注册表 我想要一个docker compose文件来旋转必要的容器,公开所需的端口并互连相关的容器。目标是拥有 我使用的是Docker Hub的官方合流图像。 我的docker compose文件如下所示: zookeeper: image: confluent/zookeeper container_name: confluent-zookeeper hostname: zo
zookeeper:
image: confluent/zookeeper
container_name: confluent-zookeeper
hostname: zookeeper
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ports:
- "2181:2181"
kafka:
environment:
KAFKA_ZOOKEEPER_CONNECTION_STRING: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092
image: confluent/kafka
container_name: confluent-kafka
hostname: kafka
links:
- zookeeper
ports:
- "9092:9092"
schema-registry:
image: confluent/schema-registry
container_name: confluent-schema_registry
environment:
SCHEMA_REGISTRY_KAFKASTORE_CONNECTION_URL: zookeeper:2181
SCHEMA_REGISTRY_HOSTNAME: schema-registry
SCHEMA_REGISTRY_LISTENERS: http://schema-registry:8081
SCHEMA_REGISTRY_DEBUG: 'true'
SCHEMA_REGISTRY_KAFKASTORE_TOPIC_REPLICATION_FACTOR: '1'
links:
- kafka
- zookeeper
ports:
- "8081:8081"
现在,当我运行docker compose up时,将创建并启动所有这些容器。但是模式注册表容器立即退出。docker日志提供以下输出:
(io.confluent.kafka.schemaregistry.rest.SchemaRegistryConfig:135)
[2017-05-17 06:06:33,415] ERROR Server died unexpectedly: (io.confluent.kafka.schemaregistry.rest.SchemaRegistryMain:51)
org.apache.kafka.common.config.ConfigException: Only plaintext and SSL Kafka endpoints are supported and none are configured.
at io.confluent.kafka.schemaregistry.storage.KafkaStore.getBrokerEndpoints(KafkaStore.java:254)
at io.confluent.kafka.schemaregistry.storage.KafkaStore.<init>(KafkaStore.java:111)
at io.confluent.kafka.schemaregistry.storage.KafkaSchemaRegistry.<init>(KafkaSchemaRegistry.java:136)
at io.confluent.kafka.schemaregistry.rest.SchemaRegistryRestApplication.setupResources(SchemaRegistryRestApplication.java:53)
at io.confluent.kafka.schemaregistry.rest.SchemaRegistryRestApplication.setupResources(SchemaRegistryRestApplication.java:37)
at io.confluent.rest.Application.createServer(Application.java:117)
at io.confluent.kafka.schemaregistry.rest.SchemaRegistryMain.main(SchemaRegistryMain.java:43)
我搜索了这个问题,但没有任何帮助。我尝试了各种其他配置,如提供KAFKA_播发的_主机名、更改模式_注册表_侦听器值等,但没有成功。
有人能指出架构注册表容器失败的确切配置问题吗?失败的容器中缺少hostname:Schema注册表项。默认情况下,Docker将使用链接容器的别名和名称以及self的主机名填充容器的/etc/hosts。这些是旧的和不推荐使用的Docker映像。使用confluentinc.支持的最新docker映像
你可以在这里找到完整的撰写文件-这个问题很老了,不过留下一个适合我的解决方案可能会有帮助。我正在使用docker compose:
version: '3.3'
services:
zookeeper:
image: confluent/zookeeper:3.4.6-cp1
hostname: "zookeeper"
networks:
- test-net
ports:
- 2181:2181
environment:
zk_id: "1"
kafka:
image: confluent/kafka:0.10.0.0-cp1
hostname: "kafka"
depends_on:
- zookeeper
networks:
- test-net
ports:
- 9092:9092
environment:
KAFKA_ADVERTISED_HOST_NAME: "kafka"
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092
KAFKA_BROKER_ID: "0"
KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181"
schema-registry:
image: confluent/schema-registry:3.0.0
hostname: "schema-registry"
depends_on:
- kafka
- zookeeper
networks:
- test-net
ports:
- 8081:8081
environment:
SR_HOSTNAME: schema-registry
SR_LISTENERS: http://schema-registry:8081
SR_DEBUG: 'true'
SR_KAFKASTORE_TOPIC_REPLICATION_FACTOR: '1'
SR_KAFKASTORE_TOPIC_SERVERS: PLAINTEXT://kafka:9092
networks:
test-net:
driver: bridge`
他们为我工作。您缺少SR所依赖的语句-zookeeper-kafkaschema\u注册表:image:confluentinc/cp架构注册表:3.2.1所依赖的:-zookeeper-kafka端口:-“8081”环境:架构\u注册表\u主机名:架构\u注册表架构\u注册表\u KAFKASTORE\u连接\u URL:“zookeeper:2181”我尝试过这些图片也很有趣。但是没有运气!我在docker compose文件中添加了hostname:schema注册表。我遇到了一个新错误:需要架构\注册表\主机\名称。命令[/usr/local/bin/dub sure SCHEMA\u REGISTRY\u HOST\u NAME]失败!但是docker compose file.links中已经提到了这一点,这取决于是否执行类似的功能。但我只是在新版docker不推荐的链接中看到了这一点。我会试试看。