先看一下有哪些选择
额,没有官方的,但是可以根据stars来找一个,大多数人都选择第一个,我们看一下GitHub就知道了。
第一个:https://github.com/wurstmeister/kafka-docker
第二个:https://github.com/spotify/docker-kafka
这个相对来说还是比较活跃的,而第二个就...好久没更新了
正题
在宿主机创建个挂载目录,然后新建一个yml文件(我放在了DockerComposeFolder文件夹里了,你们自定义即可)
[root@localhost admin]# mkdir /usr/local/kafka [root@localhost admin]# vim DockerComposeFolder/docker-compose-kafka.yml
内容如下:
version: '3.7' services: zookeeper: image: zookeeper ports: - "2181:2181" kafka: image: wurstmeister/kafka ports: - "9092:9092" environment: KAFKA_ADVERTISED_HOST_NAME: 192.168.192.128 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 volumes: - /usr/local/kafka:/kafka - /var/run/docker.sock:/var/run/docker.sock kafka-manager: image: sheepkiller/kafka-manager ports: - 9999:9000 environment: ZK_HOSTS: zookeeper:2181
启动
docker-compose -f DockerComposeFolder/docker-compose-kafka.yml up -d
开启防火墙
[root@localhost admin]# firewall-cmd --zone=public --add-port=9092/tcp --add-port=2181/tcp --add-port=9999/tcp --permanent success [root@localhost admin]# systemctl restart firewalld
查看已开启的防火墙端口
firewall-cmd --list-all
测试
访问管理页面:http://192.168.192.128:9999/
新建节点
这个警告按照提示去做即可(改成了2)
查看
新建一个topic
成功
收发消息测试
生产者
docker exec -it 52d127863cea bash /opt/kafka/bin/kafka-console-producer.sh --broker-list 192.168.192.128:9092 --topic first_topic
消费者
docker exec -it 52d127863cea bash /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server 192.168.192.128:9092 --topic first_topic --from-beginning