【发布时间】:2020-07-30 23:09:04
【问题描述】:
我正在使用 Confluent Schema Registry 的 docker 映像运行以下容器。容器内一切正常,这意味着我可以在容器内针对 localhost:8081/subjects 运行 shell 命令,并按预期返回一个空列表。
但是,我正在尝试在容器中启动模式注册表,这样我就可以在本地构建一个指向该模式注册表实例的应用程序。所以我尝试将端口 8081 暴露给我的本地机器。但是我的机器无法访问 localhost:8081 。有没有办法做我在这里想做的事情?我尝试在我的 Windows 机器上不使用 docker 运行架构注册表,但我没有看到特定于 Windows 的架构注册表启动文件。
docker run -d \
--net=host \
--add-host=linuxkit-00155da9f301:127.0.0.1 \
-p 8081:8081 \
--name=schema-registry \
-e SCHEMA_REGISTRY_KAFKASTORE_CONNECTION_URL=iptozookeepernode1:2181,iptozookeepernode2:2181 \
-e SCHEMA_REGISTRY_HOST_NAME=localhost \
-e SCHEMA_REGISTRY_LISTENERS=http://localhost:8081 \
-e SCHEMA_REGISTRY_DEBUG=true \
confluentinc/cp-schema-registry:latest
【问题讨论】:
-
你是否也在使用 Docker for Kafka、Zookeeper 等?如果是这样,你看过 Docker Compose 吗?这让网络之类的事情变得更加容易
-
@RobinMoffatt 我不是。我有一个 Azure HDInsight Kafka 集群,我只是想编写一些代码,其中在本地运行的 Schema Registry 指向我已经拥有的 Kafka 集群。它的那部分实际上是有效的,因为注册表在容器内正确启动。我只是无法从容器外部访问它。
-
@emirhosseini 你解决过这个问题吗?我在使用 docker-compose 时遇到了同样的问题。当通过 docker 运行我的应用程序时,它可以连接到模式注册表,但是当从容器网络外部通过集成测试运行时,它会失败。
标签: docker apache-kafka confluent-platform confluent-schema-registry