【CS.SE】使用 docker pull confluentinc/cp-kafka 的全面指南

1 引言

在这里插入图片描述

Apache Kafka 是一种分布式流处理平台,由于其高吞吐量、可扩展性和容错性,广泛应用于实时数据处理和数据管道。Confluent 是 Kafka 的主要贡献者之一,并提供了一个包含 Kafka 及其生态系统的 Docker 镜像 confluentinc/cp-kafka。本文将全面介绍如何使用 Docker 拉取并运行 confluentinc/cp-kafka 镜像,包括准备工作、实际操作、配置及常见问题解决。

Docker 是一个开源的平台,允许开发者自动化部署应用程序在容器中。容器是一种轻量级、可移植、自包含的环境,可以在任何地方运行。

Kafka 是一个分布式流处理平台,最初由 LinkedIn 开发,后捐赠给 Apache 软件基金会。Kafka 用于构建实时数据管道和流应用,提供发布和订阅记录流、存储记录流及处理记录流的功能。

2 准备工作

在拉取并运行 Kafka Docker 镜像之前,需要确保系统中已安装 Docker。如果尚未安装 Docker,请按照以下步骤进行安装。

2.1 安装 Docker

2.1.1 在 Linux 上安装 Docker
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install -y docker-ce
2.1.2 在 macOS 上安装 Docker

macOS 用户可以通过 Docker Desktop for Mac 进行安装。

2.1.3 在 Windows 上安装 Docker

Windows 用户可以通过 Docker Desktop for Windows 进行安装。

2.2 验证 Docker 安装

安装完成后,运行以下命令验证 Docker 是否成功安装:

$ docker --version
Docker version 24.0.5, build ced0996

3 拉取 confluentinc/cp-kafka Docker 镜像

3.1 拉取镜像

使用以下命令从 Docker Hub 拉取 confluentinc/cp-kafka 镜像:

docker pull confluentinc/cp-kafka

3.2 验证镜像

拉取完成后,使用以下命令验证镜像是否成功拉取:

$ docker images
REPOSITORY                TAG       IMAGE ID       CREATED        SIZE
confluentinc/cp-kafka     latest    abc12345def    2 days ago     1.29GB

4 运行 Kafka 容器

4.1 启动 ZooKeeper

Kafka 依赖于 ZooKeeper 进行分布式协调。首先需要启动一个 ZooKeeper 实例:

docker run -d --name zookeeper -p 2181:2181 confluentinc/cp-zookeeper

4.2 启动 Kafka

使用以下命令启动 Kafka 实例:

docker run -d --name kafka -p 9092:9092 --link zookeeper:zookeeper \
  -e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
  -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 \
  confluentinc/cp-kafka

4.3 验证 Kafka 启动

使用以下命令检查 Kafka 容器的日志,确保 Kafka 成功启动:

$ docker logs kafka
[2022-01-01 00:00:00,000] INFO [KafkaServer id=1] started (kafka.server.KafkaServer)

5 配置 Kafka

5.1 配置文件

Kafka 的配置文件位于 /etc/kafka 目录中,可以通过挂载配置文件对其进行自定义。例如:

docker run -d --name kafka -p 9092:9092 --link zookeeper:zookeeper \
  -v /path/to/your/config/server.properties:/etc/kafka/server.properties \
  confluentinc/cp-kafka

5.2 环境变量

Kafka 也可以通过环境变量进行配置,常见的配置项包括:

  • KAFKA_ZOOKEEPER_CONNECT:指定 ZooKeeper 的连接地址。
  • KAFKA_ADVERTISED_LISTENERS:指定 Kafka 的监听地址。

更多配置项可以参考 Confluent Kafka Docker 文档。

6 常见问题解决

6.1 无法连接 ZooKeeper

6.1.1 问题描述

Kafka 启动时无法连接到 ZooKeeper,可能导致 Kafka 启动失败。

6.1.2 解决方法
  1. 确认 ZooKeeper 容器是否正常启动,并且在正确的端口上监听。
  2. 检查 KAFKA_ZOOKEEPER_CONNECT 环境变量是否配置正确。

6.2 Kafka 端口冲突

6.2.1 问题描述

Kafka 使用的默认端口 9092 被其他进程占用,导致 Kafka 启动失败。

6.2.2 解决方法
  1. 确认 9092 端口没有被其他进程占用。
  2. 如果被占用,可以修改 Kafka 的监听端口:
docker run -d --name kafka -p 9093:9092 --link zookeeper:zookeeper \
  -e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
  -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9093 \
  confluentinc/cp-kafka

6.3 内存不足

6.3.1 问题描述

如果系统内存不足,可能导致 Kafka 容器启动失败或性能下降。

6.3.2 解决方法
  1. 确认系统有足够的可用内存。
  2. 可以通过 Docker 的 --memory 参数限制容器的内存使用:
docker run -d --name kafka -p 9092:9092 --link zookeeper:zookeeper \
  -e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
  -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 \
  --memory 4g \
  confluentinc/cp-kafka

7 总结

本文详细介绍了使用 Docker 拉取并运行 confluentinc/cp-kafka 镜像的步骤,包括准备工作、实际操作、配置及常见问题解决。通过这些步骤,可在本地快速搭建一个 Kafka 环境,用于开发和测试。

References

1000.07.CS.SE.2-软件开发流程-容器化与Docker-案例-Kafka容器-Created: 2024-06-08.Saturday18:54

  • 27
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段命令的作用是: 1. 执行 `source /etc/profile` 命令,使得之前添加的 Go 语言环境变量生效; 2. 执行 `mkdir -p /home/ubuntu/gopath/src/github.com/hyperledger` 命令,创建一个目录用于存放 Hyperledger Fabric 的源代码; 3. 执行 `cd /home/ubuntu/gopath/src/github.com/hyperledger` 命令,切换到 Hyperledger Fabric 代码存放的目录; 4. 执行 `cp /resource/docker-compose /usr/local/bin` 命令,将预设好的 `docker-compose` 文件拷贝到 `/usr/local/bin` 目录下; 5. 执行 `chmod +x /usr/local/bin/docker-compose` 命令,添加可执行权限; 6. 执行 `cp /resource/fabric-samples.tar.gz /home/ubuntu/gopath/src/github.com/hyperledger` 命令,将预设好的 Hyperledger Fabric 样例程序压缩包拷贝到 `github.com/hyperledger` 目录下; 7. 执行 `cd /home/ubuntu/gopath/src/github.com/hyperledger` 命令,切换到 Hyperledger Fabric 样例程序所在的目录; 8. 执行 `tar -xf ./fabric-samples.tar.gz` 命令,解压 Hyperledger Fabric 样例程序压缩包; 9. 执行 `source /etc/profile` 命令,重新加载 Go 语言环境变量; 10. 执行 `cd /home/ubuntu/gopath/src/github.com/hyperledger/fabric-samples/scripts` 命令,切换到 Hyperledger Fabric 样例程序的脚本目录; 11. 执行 `./bootstrap.sh 1.4.0 1.4.0 0.4.14` 命令,安装 Hyperledger Fabric 所需的依赖组件; 12. 执行 `cd /home/ubuntu/gopath/src/github.com/hyperledger/fabric-samples/first-network` 命令,切换到 Hyperledger Fabric 样例程序的第一个网络目录; 13. 执行 `./byfn.sh up -s couchdb` 命令,启动第一个网络,并使用 CouchDB 作为状态数据库; 14. 执行 `docker-compose -f docker-compose-cli.yaml -f docker-compose-couch.yaml -f docker-compose-kafka.yaml start` 命令,启动 Fabric 网络中的 Docker 容器; 15. 执行 `../bin/configtxgen -profile TwoOrgsChannel -outputCreateChannelTx channel-artifacts/test.tx -channelID test` 命令,使用 configtxgen 工具生成通道交易配置文件和创世块配置文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值