1. 准备
1.1 关闭防火墙
- 禁止防火墙开机启动
systemctl disable firewalld
- 停止防火墙服务
systemctl stop firewalld
- 查看防火墙状态
systemctl status firewalld
关闭防火墙后,重启虚拟机!!!
reboot
1.2 镜像准备
- zookeeper镜像
docker pull zookeeper:3.6.1
- kafka镜像
docker pull wurstmeister/kafka:2.12-2.5.0
- 查看已下载镜像
docker images
2. zookeeper安装
2.1 创建目录/root/docker-compose/zookeeper
,用于存放zookeeper的docker-compose.yml文件
[root@localhost ~]# mkdir -vp ~/docker-compose/zookeeper
mkdir: 已创建目录 "/root/docker-compose"
mkdir: 已创建目录 "/root/docker-compose/zookeeper"
2.2 创建文件/root/docker-compose/zookeeper/docker-compose.yml
,内容如下
version: '2'
services:
zookeeper:
image: zookeeper:3.6.1
container_name: zookeeper
restart: always
hostname: zookeeper
ports:
- 2181:2181
2.3 启动zookeeper
# 进入docker-compose.yml文件所在目录
[root@localhost ~]# cd /root/docker-compose/zookeeper
# 启动zookeeper
[root@localhost zookeeper]# docker-compose up -d
Creating network "zookeeper_default" with the default driver
Creating zookeeper ... done
# 检查是否启动成功
# yum install -y nc #安装nc命令
# 如果能正常显示出版本,则安装成功
[root@localhost zookeeper]# echo srvr|nc localhost 2181
Zookeeper version: 3.6.1--104dcb3e3fb464b30c5186d229e00af9f332524b, built on 04/21/2020 15:01 GMT
Latency min/avg/max: 0/0.0/0
Received: 1
Sent: 0
Connections: 1
Outstanding: 0
Zxid: 0x0
Mode: standalone
Node count: 5
# 若启动失败,使用以下命令进行日志查看
docker logs -f zookeeper
3. Kafka安装
3.1 创建目录/root/docker-compose/kafka
,用于存放kafka的docker-compose.yml文件
[root@localhost ~]# mkdir -vp ~/docker-compose/kafka
mkdir: 已创建目录 "/root/docker-compose/kafka"
3.2 创建文件/root/docker-compose/kafka/docker-compose.yml
,内容如下
version: '2'
services:
kafka:
image: wurstmeister/kafka:2.12-2.5.0
container_name: kafka
ports:
- 9092:9092
environment:
KAFKA_LISTENERS: PLAINTEXT://:9092
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.1.14:9092
KAFKA_ZOOKEEPER_CONNECT: 192.168.1.14:2181
volumes:
- /var/run/docker.sock:/var/run/docker.sock
3.3 启动kafka
# 进入docker-compose.yml文件所在目录
[root@localhost ~]# cd /root/docker-compose/kafka
# 启动kafka
[root@localhost zookeeper]# docker-compose up -d
[root@localhost kafka]# docker-compose up -d
Creating network "kafka_default" with the default driver
Creating kafka ... done
# 通过docker ps查看启动情况
[root@localhost kafka]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
903022f44267 wurstmeister/kafka:2.12-2.5.0 "start-kafka.sh" 42 seconds ago Up 42 seconds 0.0.0.0:9092->9092/tcp kafka
6514eb9adc20 zookeeper:3.6.1 "/docker-entrypoin..." 3 minutes ago Up 3 minutes 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, 8080/tcp zookeeper
3.4 创建kafka topic进行测试
创建名为topic001
的主题,主题有三个分区,副本数为1(只有一个broker,只能为1)
docker exec kafka kafka-topics.sh \
--create --topic topic001 \
--partitions 3 \
--zookeeper 192.168.1.14:2181 \
--replication-factor 1
3.4 查看刚才创建的topic topic001
docker exec kafka kafka-topics.sh \
--describe \
--topic topic001 \
--zookeeper 192.168.1.14:2181