docker 获取宿主机ip_Docker搭建kafka集群

拉取镜像

docker pull wurstmeister/kafka
docker pull wurstmeister/zookeeper

启动镜像

docker run --name zookeeper -p 12181:2181 -d wurstmeister/zookeeper:latest

docker run -p 19092:9092 --name kafka1 -d -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=宿主机ip:12181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://宿主机ip:19092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 wurstmeister/kafka:latest
docker run -p 19093:9093 --name kafka2 -d -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=宿主机ip:12181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://宿主机ip:19093 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9093 wurstmeister/kafka:latest
docker run -p 19094:9094 --name kafka3 -d -e KAFKA_BROKER_ID=2 -e KAFKA_ZOOKEEPER_CONNECT=宿主机ip:12181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://宿主机ip:19094 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9094 wurstmeister/kafka:latest

//如果有其他问题可以使用查找log
docker logs 容器名 
//进入容器内部
docker exec -i -t 容器名 /bin/bash

敲黑板

-e KAFKA_ZOOKEEPER_CONNECT=127.0.0.1 是错误的,这样会使用kafka镜像自身的ip,kafka连接不到zk的地址就报超时了。-e KAFKA_ZOOKEEPER_CONNECT=宿主机ip

如果你好奇心重,你可以这样改,不要问我怎么知道的

docker inspect 容器名字

72c3f83696ffa44a62dc386658653b5e.png

你就可以获得到配置文件的路径

此时你需要进入docker虚拟机

以mac为例:

cd ~/Library/Containers/com.docker.docker/Data/vms/0/

ls

screen tty

//此时可能会出现一个新的命令行,或者是空白的,此时按一下回车键,就进入了docker虚拟机

//cd到刚刚我们查找到的路径
cd /var/lib/docker/containers/5caeea4c416f5caf7af4e94329a99cf7
6488d98d3db866d2cae64e2f3095233c

ls

//修改保存退出
vi config.v2.json

//快捷键:vi后输入 /要查找的关键字 例如/ZOO 可以快速定位到要修改的地方

//control+a+k 可退出当前的docker虚拟机
//重启一下docker服务

推荐一个好用的小工具kafka Tool...

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值