通过docker 安装kafka 在dockerhub网站中Star最多的kafka镜像是wurstmeister/kafka(https://hub.docker.com/r/wurstmeister/kafka)
1.首先需要 安装docker-compose https://docs.docker.com/compose/install/
a.运行此命令以下载最新版本的Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
b.对二进制文件应用可执行权限:
sudo chmod +x /usr/local/bin/docker-compose
c.$ docker-compose --version docker-compose version 1.23.2, build 1110ad01
d.选择一个目录创建名称为docker-compose.yml文件,内容如下:
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
build: .
--此处可以直接指向生成好的镜像 (把build.改为 image: wurstmeister/kafka)
image: wurstmeister/kafka
ports:
- "9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: 106.12.35.241
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
volumes:
- /var/run/docker.sock:/var/run/docker.sock
e. 之后在该目录下执行如下命令启动:
docker-compose up -d
添加更多经纪人:
- docker-compose scale kafka=3
销毁集群:
- docker-compose stop
进入Docker 容器命令:
docker exec -it 36ae7ceb2b5e bash
创建topic:
# docker exec 36ae7ceb2b5e kafka-topics.sh --create --topic test --partitions 1 --zookeeper zookeeper:2181 --replication-factor 1
执行发送消息命令:
kafka-console-producer.sh --broker-list 106.12.35.241:32774 --topic test
执行接收消息命令:
./kafka-console-consumer.sh --bootstrap-server 106.12.35.241:32774 --topic test --from-beginning