真的实用,2021你不可不知的Docker操作部署kafka+zookeeper
环境准备
文章使用 Window 系统 + Docker Desktop 演示,假设您有一定的docker基础。
Docker Desktop
Docker Desktop为我们学习Docker提供了一套完整的一个桌面环境,可以为软件开发提供很多便利。
Docker Desktop包含了Docker Engine, Docker CLI client, Docker Compose, Docker Machine和Kitematic。
先去 Docker官网 下载 Docker Desktop 并安装。
docker-compose
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
compose命令
命令 | 解释 |
---|---|
docker-compose up | 启动所有容器 |
docker-compose up -d | 后台启动并运行所有容器 |
docker-compose up --no-recreate -d | 不重新创建已经停止的容器 |
docker-compose up -d test2 | 只启动test2这个容器 |
docker-compose stop | 停止容器 |
docker-compose start | 启动容器 |
docker-compose down | 停止并销毁容器 |
由于安装Docker Desktop时会默认安装 docker-compose,所以我们并不需要特意去安装compose。
编写docker-compose.yml
version: '3'
services:
zookeeper:
image: wurstmeister/zookeeper
volumes:
- ./data:/data
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
KAFKA_MESSAGE_MAX_BYTES: 2000000
KAFKA_CREATE_TOPICS: "Topic1:1:3,Topic2:1:1:compact"
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
volumes:
- ./kafka-logs:/kafka
- /var/run/docker.sock:/var/run/docker.sock
kafka-manager:
image: sheepkiller/kafka-manager
ports:
- 9020:9000
environment:
ZK_HOSTS: zookeeper:2181
复制代码
将docker-compose.yml放到任意文件目录下。
window终端执行Docker Compose命令
启动window终端,进入到docker-compose.yml 所在的文件目录
服务打包
[root@rameo kafka] # docker-compose build
zookeeper uses an image, skipping
kafka uses an image, skipping
复制代码
启动服务
[root@rameo kafka]# docker-compose up -d
Starting kafka_kafka_1 ... done
Starting kafka_zookeeper_1 ... done
复制代码
此时已经启动成功,我们可以通过Docker Desktop桌面工具看拉取的镜像
和启动的容器
总结
通过这个例子,我们可以非常高效的实现kafka集群+zookeeper集群的搭建,主要得以与Docker Desktop工具集成了很多docker能力和docker-compose编排处理的能力,我们不需要每一个镜像拉取、运行、配置一次,而是全都由统一的docker-compose.yml集中管理,一次运行。
链接:https://juejin.cn/post/7034129994448125982