在Docker中安装kafka遇到问题记录

这篇具有很好参考价值的文章主要介绍了在Docker中安装kafka遇到问题记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

命令含义解答:

在docker安装kafka的时候,启动kafka的时候会执行下面语句:

docker run -d  --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.11.129:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.11.129:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka

那么

docker run -d --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.11.129:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.11.129:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka

这个命令什么意思?

这个命令是用于在Docker中启动一个Kafka容器的命令。让我来解释一下这个命令的每个部分的含义:

  • docker run -d: 这是Docker命令的一部分,用于在后台运行容器。

  • --log-driver json-file --log-opt max-size=100m --log-opt max-file=2: 这些是日志驱动相关的选项,用于配置容器的日志。

  • --name kafka: 这是为容器指定一个名称,本例中是"kafka"。

  • -p 9092:9092: 这是用于将容器内部的9092端口映射到主机的9092端口,以便可以通过主机访问Kafka。

  • -e KAFKA_BROKER_ID=0: 这是设置Kafka Broker ID的环境变量,本例中设置为0。

  • -e KAFKA_ZOOKEEPER_CONNECT=192.168.11.129:2181/kafka: 这是指定Zookeeper的连接地址和端口的环境变量,本例中连接到192.168.11.129的2181端口。

  • -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.11.129:9092: 这是设置广告侦听器的环境变量,Kafka将广告侦听器公布给Zookeeper。

  • -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092: 这是设置侦听器的环境变量,这里设置Kafka监听所有接口的9092端口。

  • -v /etc/localtime:/etc/localtime: 这是将主机的时区文件挂载到容器中,以确保容器的时区与主机一致。

  • wurstmeister/kafka: 这是要运行的Kafka镜像的名称。

通过运行这个命令,您将在Docker中启动一个具有配置和映射的Kafka容器,其中包括Broker ID、Zookeeper连接、广告侦听器等设置。这样,您就可以在主机上使用Kafka来进行消息传递和其他操作。

疑问:上文中的-e KAFKA_ZOOKEEPER_CONNECT=192.168.11.129:2181/kafka。其中的192.168.11.129是zookeeper服务的ip地址吗?

答:

是的,192.168.11.129是Zookeeper服务的IP地址。在这个命令中,通过设置KAFKA_ZOOKEEPER_CONNECT环境变量为192.168.11.129:2181/kafka,指定了Kafka连接到的Zookeeper服务的地址和端口。在这里,192.168.11.129是Zookeeper服务器的IP地址,2181是Zookeeper的默认端口号。在/kafka后面的/kafka路径是指定Kafka在Zookeeper中的命名空间。

docker与宿主机直接ping的问题

环境:docker中使用ifconfig查看ip是172.17.0.2,宿主机的ip是192.168.8.190.

docker desktop中启动zookeeper后,使用ifconfig,查看ip是172.17.0.2.在Windows的宿主机上ping 172.17.0.2,ping不通。但是在docker中的zk可以ping 通宿主机的ip。

如果在Windows的宿主机上无法ping通172.17.0.2,但在Docker中的zk能够ping通宿主机的IP,这可能是由于Windows主机上的网络配置导致的。

Docker Desktop使用虚拟网络和网络地址转换(NAT)来连接容器和宿主机。默认情况下,Docker会将容器连接到一个虚拟网络,并在宿主机上创建一个虚拟网卡来与这个网络进行通信。因此,172.17.0.2是在Docker的虚拟网络上分配给zk容器的IP地址,仅在Docker虚拟网络中可用。

要使Windows宿主机能够访问到容器内的IP地址,可以尝试使用Docker的端口映射功能,将容器的端口映射到宿主机上的一个端口。例如,可以使用以下命令来运行zk容器并映射端口:

docker run -d -p 2181:2181 --name my-zk zookeeper:tag

这将把zk容器的2181端口映射到宿主机上的2181端口。然后,在Windows主机上,可以使用它自己的IP地址和映射的端口访问zk。

那如果在docker中启动了kafka镜像。启动命令:docker run -d --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=172.17.0.2:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.17.0.2:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka

使用172.17.0.2还是使用Windows宿主机的ip?

在这种情况下,应该使用宿主机的IP地址,而不是172.17.0.2。原因是Kafka的KAFKA_ADVERTISED_LISTENERS参数会告知客户端应该连接到哪个IP地址来访问Kafka服务器。

根据你提供的命令行参数,Kafka的广告侦听器配置为PLAINTEXT://172.17.0.2:9092,这意味着Kafka会告知客户端通过连接到172.17.0.2的9092端口来访问Kafka。然而,这只适用于Docker内部的网络。

如果你想从Windows宿主机访问Kafka,请将KAFKA_ADVERTISED_LISTENERS参数的值更改为宿主机的IP地址。即修改为PLAINTEXT://宿主机ip地址:9092,例如:

docker run -d --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=172.17.0.2:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://宿主机ip地址:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka

请将宿主机ip地址替换为你的Windows宿主机的实际IP地址。这样,Kafka就会告知客户端通过连接到宿主机的IP地址的9092端口来访问Kafka,从而使Windows宿主机能够访问到Kafka服务。

本文来源👉: 凯哥个人博客 点击查看更多哦~文章来源地址https://www.toymoban.com/news/detail-773988.html

到了这里,关于在Docker中安装kafka遇到问题记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决

    1.认识docker,docker和虚拟机对比; 2.docker的架构,客户端,镜像,容器,仓库; 3.docker常用的命令,docker exec,inspect,ps; 4.Linux安装docker,更换镜像源,ipv4转发开启; Docker是一个开源的应用容器引擎,开发者可以打包自己的应用到容器里面,然后迁移到其他机器的docker应用

    2024年02月16日
    浏览(45)
  • 记录内网Docker启动Stable-Diffusion遇到的几个坑

    摘要: 最近看到K8s启动stable-diffusion的文章,想着在自己开发环境复现一下。没想到在内网环境还遇到这么多问题,记录一下。 本文分享自华为云社区《内网Docker启动Stable-Diffusion(AI作画)》,作者:tsjsdbd 。 最近看到K8s启动stable-diffusion的文章,想着在自己开发环境复现一下

    2024年02月05日
    浏览(46)
  • docker 安装gitlab 遇到的问题

    问题一:代码迁移问题 描述:docker 安装完gitlab后,将代码从A服务器进行迁移B服务器,结果输入账号密码发现代码并没有迁移成功,出现问题如下:【提示账号密码有误】 remote: HTTP Basic: Access denied. The provided password or token is incorrect or your account has 2FA enabled and you must use a perso

    2024年01月25日
    浏览(44)
  • docker部署jenkins遇到常见问题

    最近在用docker搭建jenkins,来完成项目部署,过程中碰到的问题记录如下: 1、从git中拉去代码到jenkins中 2、将拉去的代码使用maven 构建 3、将maven生成的jar包推送到目标服务器 4、使用shell脚本在目标服务器上运行 配置目标服务器的环境变量时 系统配置中Publish over SSH模块下 使

    2024年02月05日
    浏览(67)
  • Docker使用遇到问题:docker build requires exactly 1 argument(s)

    Docker 是怎么样的东西,这里就不说了,这里说说dockerfile创建容器时遇到的问题。 首先我想达到的目的很简单,就是用dockerfile去创建容器,步骤如下: 创建并编辑dockerfile mkdir mydocker cd /mydocker vim DockerFile (输入以下指令) FROM centos(指定其后构建新镜像所使用的基础镜像) V

    2024年02月09日
    浏览(44)
  • kafka延时队列原理,Java开发中遇到最难的问题

    Dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信么? Dubbo 的整体架构设计有哪些分层? 什么是 Spring Boot?以及Spring Boot的优劣势? 你如何理解 Spring Boot 中的 Starters? 服务注册和发现是什么意思?Spring Cloud 如何实现? Spring Cloud断路器的作用

    2024年03月21日
    浏览(46)
  • 目标检测中遇到的问题和 docker导出日志

    导出日志在Linux服务器的本地目录下,可以直接下载 1 改dockerfile 文件内容 2 改 app.py 中的内容 将模型在主程序 main 中加载,进行flask交互时,将全局变量直接导入使用模块中,比如提前加载YOLOv5模型。 四 提取图片中的识别区,将无关部分去除 返回图片中固定比例的点

    2024年02月13日
    浏览(31)
  • Windows10下docker安装及遇到的问题并且在docker快速部署onlyoffice

    docker安装超链接点击进入下载 这里下载的是window版的docker,你们根据自身实际情况下载; 遇到置灰无法勾选时需开启BIOS中的虚拟技术; 需要重启电脑,重启时按F2进入BIOS模式,红框里默认是关闭,需要改成开启,按F10保存并重启,然后置灰的选项就可以点击开启啦; **问题二:

    2024年02月12日
    浏览(68)
  • 解决WSL2的ubuntu20.04中安装docker出现无法连接的问题(Cannot connect to the Docker daemon)

    wsl2的ubuntu20.04系统安装docker可以参考官网教程操作,我个人喜欢参考其中的离线安装方式:Install from a package。只需要按照官网一步步操作即可,跟普通的ubuntu20.04的安装是一样的步骤。 在安装完以后,发现一旦使用docker相关命令会出现下述问题: 说明docker没有正常启动。这

    2024年04月23日
    浏览(51)
  • Docker安装MinIO遇到的问题汇总——持续更新中

    本文章记录作者使用Docker安装MinIO过程中遇到的所有问题, 将持续更新 ,如果你在使用Docker安装MinIO过程中遇到了一些问题,但是本文没有记载,你可以直接在本文评论区贴图、或打字描述,这样大家都能看到,可以给你一些建议,从而不断完善,让后来者少走更多的弯路,

    2024年02月04日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包