docker关于kafka的compose
时间: 2025-02-16 15:09:54 浏览: 32
### 使用 Docker Compose 部署 Kafka
#### 创建必要的目录结构
为了确保数据持久化以及配置文件管理方便,在开始之前先创建所需的工作目录:
```bash
mkdir -p /data/kafka/
```
此命令将在 `/data` 下建立名为 `kafka` 的子目录,用于存储后续操作所需的资源。
#### 编写 docker-compose.yml 文件
下面是一个典型的 `docker-compose.yml` 文件示例,它描述了一个包含 Zookeeper 和三个 Kafka 节点集群的服务组合。该设置基于 Bitnami 提供的官方镜像构建[^2]。
```yaml
version: '3'
services:
zookeeper:
image: bitnami/zookeeper:3.6
ports:
- "2181:2181"
environment:
ALLOW_ANONYMOUS_LOGIN: "yes"
kafka1:
image: bitnami/kafka:3.0
depends_on:
- zookeeper
ports:
- "9092:9092"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
ALLOW_PLAINTEXT_LISTENER: "yes"
kafka2:
image: bitnami/kafka:3.0
depends_on:
- zookeeper
ports:
- "9093:9093"
environment:
KAFKA_BROKER_ID: 2
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9093
ALLOW_PLAINTEXT_LISTENER: "yes"
kafka3:
image: bitnami/kafka:3.0
depends_on:
- zookeeper
ports:
- "9094:9094"
environment:
KAFKA_BROKER_ID: 3
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9094
ALLOW_PLAINTEXT_LISTENER: "yes"
```
上述 YAML 文件定义了四个服务:一个ZooKeeper实例和三个Kafka节点组成的集群。每个Kafka节点都指定了不同的监听端口以便于本地测试环境中访问。
#### 启动服务
完成以上步骤之后,可以通过执行如下命令启动所有服务:
```bash
cd /path/to/docker-compose-file-directory
docker-compose up -d
```
这会以前台方式异步启动所有的容器,并使它们以后台守护进程的形式运行。如果想要查看日志输出可以去掉 `-d` 参数让其同步阻塞当前终端窗口直到手动终止程序为止。
通过这种方式能够快速搭建起一套完整的 Apache Kafka 测试环境,非常适合开发人员进行功能验证或是学习目的下的实践练习[^4]。
阅读全文
相关推荐

















