一、拉取镜像
# 拉取 zookeeper (kafka 依赖于zk)
docker pull wurstmeister/zookeeper
# 拉取 kafka
docker pull wurstmeister/kafka
# 拉取 kafka 管理工具
docker pull sheepkiller/kafka-manager
二、使用 docker-compose 运行
编写 docker-compose.yml
# 新建文件夹, 在该文件夹下新建 docker-compose.yml 文件
[root@bogon /]# mkdir -p /www/bigdata/kafka/DockerComposeFolder
[root@bogon /]# cd /www/bigdata/kafka/DockerComposeFolder
[root@bogon /]# touch docker-compose.yml
# docker-compose.yml 文件,内容如下:
version: '2'
services:
zoo1:
image: wurstmeister/zookeeper
restart: unless-stopped
hostname: zoo1
ports:
- "2181:2181"
container_name: zookeeper
kafka1:
image: wurstmeister/kafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: "192.168.0.74"
KAFKA_ZOOKEEPER_CONNECT: "zoo1:2181"
KAFKA_BROKER_ID: 1
KAFKA_OFFSETES_TOPIC_REPLICATION_FACTOR: 1
KAFKA_CREATE_TOPICS: "stream-in:1:1,stream-out:1:1"
depends_on:
- zoo1
container_name: kafka
volumes:
- /data/kafka:/kafka
- /var/run/docker.sock:/var/run/docker.sock
kafka-manager:
image: sheepkiller/kafka-manager
ports:
- "9999:9000"
environment:
ZK_HOSTS: "zoo1:2181"
container_name: kafka-manager
运行
[root@bogon DockerComposeFolder]# docker-compose -f ./docker-compose.yml up -d
Creating network "dockercomposefolder_default" with the default driver
Creating zookeeper ... done
Creating kafka-manager ... done
Creating kafka ... done
停止运行
[root@bogon DockerComposeFolder]# docker-compose down
Stopping kafka ... done
Stopping zookeeper ... done
Stopping kafka-manager ... done
Removing kafka ... done
Removing zookeeper ... done
Removing kafka-manager ... done
Removing network dockercomposefolder_default
开启防火墙
# 添加防火墙端口
[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
# 查看防火墙开放的端口
[root@bogon DockerComposeFolder]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: dhcpv6-client ssh
ports: 80/tcp 8080/tcp 8081/tcp 3306/tcp 9092/tcp 2181/tcp 9999/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
测试 kafka 管理工具
浏览器访问 宿主机 ip:9999,我这里虚拟机ip为192.168.0.74