基于Docker以KRaft模式快速部署Kafka
参考文献
https://kafka.apache.org/37/documentation.html#uses
https://spring.io/projects/spring-kafka#overview
获取Docker镜像
docker pull apache/kafka:3.7.1
创建一个目录来存储Kafka的配置文件
mkdir -p /home/user/kafka_config
启动Kafka容器
docker run -d \
--name kira-kafka \
-v /home/user/kafka_config:/opt/kafka/config \
-p 9092:9092 \
--user root \
apache/kafka:3.7.1
cd /var/lib/docker/volumes/kafka_data/_data
创建Kafka的主题
进入Kafka容器
docker exec -u root -it kira-kafka bash
找到kafka-topics.sh:在容器中查找脚本路径
find / -name kafka-topics.sh
创建主题:根据实际的路径,运行命令
/opt/kafka/bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092
查看主题
/opt/kafka/bin/kafka-topics.sh --describe --topic quickstart-events --bootstrap-server localhost:9092
然后用kafka-King可视化工具进行连接
进入容器内部改成正确的IP(如果内部IP不正确时)
docker exec -u root -it kira-kafka bash
编辑文件
vi /opt/kafka/config/server.properties
删除localhost
esc
:wq保存
删除这个
保留这一行,改成我们的虚拟机本机地址而不是localhost
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://192.168.88.130:9092
退出容器
重启kafka容器
检查本地挂载目录权限保证它可写
ls -ld /home/user/kafka_config
如果目录权限修改不正确,可以使用以下命令修改权限
sudo chown -R 1000:1000 /home/user/kafka_config
sudo chmod -R 755 /home/user/kafka_config
修改容器内权限
docker exec -u root -it kira-kafka bash
chmod -R 777 /opt/kafka/config
重启容器
docker restart kira-kafka
如何验证挂载
进入容器内部
docker exec -it kira-kafka bash
检查挂载目录
ls /opt/kafka/config