先看一下有哪些選擇
額,沒有官方的,但是可以根據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