由于kafka强依赖于zookeeper,所以要先装zookeeper,两者又通过ip访问,所以先创建虚拟网络
docker network create --driver bridge --subnet 192.168.1.0/16 --gateway 192.168.1.0 mynet
解析:
--driver bridge 表示使用桥接模式
--subnet 192.168.1.0/16 表示子网ip 可以分配 192.168.1.2 到 192.168.255.255
--gateway 192.168.1.0 表示网关
mynet 表示网络名
接下来安装zookeeper,给它配置固定ip 192.168.1.1
docker run -d --name zk -p 2181:2181 -v /etc/localtime:/etc/localtime --hostname zk --net mynet --ip 192.168.1.1 zookeeper
接下来跑kafka容器,给它的ip 192.168.1.2
docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.1.1:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.2:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 --hostname kafka --net mynet --ip 192.168.1.2 -t wurstmeister/kafka
跑起来后可以进容器用一下命令验证一下是否安装成功
#进容器
docker exec -ti kafka bash
#创建主题
/opt/kafka/bin/kafka-topics.sh --zookeeper 192.168.1.1:2181 --create --topic dalianpai --partitions 2 --replication-factor 1
#查看新增的主题列表时候包含刚才创建的dalianpai
/opt/kafka/bin/kafka-topics.sh --zookeeper 192.168.1.1:2181 --list
最后装一个kafka manage 进行web管理
docker run -d --name km -p 9000:9000 -e ZK_HOSTS=192.168.1.1:2181 --net mynet sheepkiller/kafka-manager
最后开浏览器通过 ip:9000进行web访问
|