【问题标题】:Confluent Schema Registry Docker image not exposing port 8081 outside the containerConfluent Schema Registry Docker 映像未在容器外公开端口 8081
【发布时间】: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


【解决方案1】:

对我来说,问题与 localhost 上的端口 8081(由 McAfee 使用)有关,将端口映射更改为 8017:8081 并且工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-04
    • 2021-10-12
    • 2019-05-01
    • 2023-01-11
    • 1970-01-01
    • 2019-07-21
    • 2019-07-21
    • 1970-01-01
    相关资源
    最近更新 更多