参考 :
docker安装kafka_方方园园的博客-CSDN博客_docker kafka
Docker搭建Kafdrop(言简意赅)_jnkdog.的博客-CSDN博客_docker 安装kafdrop
替换本机ip即可直接复制到命令行界面即可
# 本机ip
IP=192.168.1.1
# 生成zookeeper启动脚本
cat > run_zookeeper.sh << 'EOF'
docker run -d --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime wurstmeister/zookeeper
EOF
# 生成kafmap启动脚本
cat > run_kafmap.sh << 'EOF'
docker run -d \
-p 9991:8080 \
-e DEFAULT_USERNAME=admin \
-e DEFAULT_PASSWORD=admin \
--name kafmap \
--restart always dushixiang/kafka-map:latest
EOF
# 生成kafka启动脚本
cat > run_kafka.sh << 'EOF'
docker run -d --name kafka --network=host -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=$IP:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://IP:9990 -e KAFKA_LISTENERS=PLAINTEXT://IP:9990 -t wurstmeister/kafka
EOF
# 生成kafdrop启动脚本
cat > run_kafdrop.sh << 'EOF'
docker run -d --name kafdrop --rm -p 9992:9000 \
-e JVM_OPTS="-Xms32M -Xmx64M" \
-e KAFKA_BROKERCONNECT=IP:9990 \
-e SERVER_SERVLET_CONTEXTPATH="/kafdrop" \
obsidiandynamics/kafdrop
EOF
# 生成启动脚本启动脚本
cat > start.sh << 'EOF'
./run_zookeeper.sh
sleep 3s
./run_kafka.sh
sleep 3s
./run_kafmap.sh
./run_kafdrop.sh
sleep 2s
echo "zookeeper,kafka,kafmap,kafdrop 启动完成
zookeeper的端口为[2181]
kafka的端口为[9990]
kafmap的端口为[9991]
kafdrop的端口为[9992],账号和密码都是[admin],添加kafka地址为[IP:9990]"
EOF
# 生成查看日志脚本启动脚本
cat > log.sh << 'EOF'
case $1 in
kafdrop)
docker logs -f -n 200 kafdrop
;;
kafka)
docker logs -f -n 200 kafka
;;
kafmap)
docker logs -f -n 200 kafmap
;;
zookeeper)
docker logs -f -n 200 zookeeper
;;
*)
echo "
指令无效,请输入以下中的指令:
+------------------------------------------------------------------+
| [kafdrop] |
| [kafka] |
| [kafmap] |
| [zookeeper] |
+------------------------------------------------------------------+
"
esac
EOF
sed -i "s#IP#$IP#g" run_kafdrop.sh
sed -i "s#IP#$IP#g" run_kafka.sh
chmod +x *.sh