debezium/kafka该镜像为 Debezium 平台的核心组件,用于提供 Kafka 服务。仓库已迁移至 quay.io/debezium/kafka。
Kafka 是一个分布式、分区、复制的提交日志服务,作为 Debezium 平台的基础组件,用于存储数据库变更事件流。Debezium 连接器监控数据库并将行级变更事件写入 Kafka 主题,客户端应用通过消费相关 Kafka 主题接收和处理变更事件。
适用于单主机部署,用于 Debezium 平台的简单评估和功能验证,快速搭建包含 Zookeeper、Kafka 和 Debezium 连接器的本地环境。
需通过多实例部署提供性能、可靠性和容错能力,可结合 OpenShift 等容器编排平台管理多主机上的容器集群。注意:高吞吐量场景建议参考 Kafka 官方文档,在专用硬件上部署 Kafka。
需提前部署 Zookeeper 服务,可通过容器(名称为 zookeeper)或 OpenShift 服务(名称为 zookeeper)提供。
bashdocker run -it --name kafka -p 9092:9092 --link zookeeper:zookeeper quay.io/debezium/kafka
-it:交互式运行并附加控制台,用于查看 broker 输出和错误日志;--name kafka:指定容器名称为 kafka;-p 9092:9092:映射容器 9092 端口到主机;--link zookeeper:zookeeper:链接 Zookeeper 容器,使 Kafka 可访问 Zookeeper 服务。使用 -d 替换 -it 以 detached 模式启动:
bashdocker run -d --name kafka -p 9092:9092 --link zookeeper:zookeeper quay.io/debezium/kafka
查看日志:
bashdocker logs --follow --name kafka # 实时跟踪日志输出
通过临时容器在运行的 Kafka 集群上创建主题:
bashdocker run -it --rm --link zookeeper:zookeeper quay.io/debezium/kafka create-topic [-p numPartitions] [-r numReplicas] [-c cleanupPolicy] topic-name
topic-name:主题名称(必填);-p numPartitions:分区数(默认 1);-r numReplicas:副本数(默认 1);-c cleanupPolicy:清理策略(delete 或 compact,默认 delete)。compact 的主题 db_changes:
bashdocker run -it --rm --link zookeeper:zookeeper quay.io/debezium/kafka create-topic -p 3 -r 1 -c compact db_changes
通过临时容器监控指定主题的消息:
bashdocker run -it --rm --link zookeeper:zookeeper --link kafka:kafka quay.io/debezium/kafka watch-topic [-a] [-k] [-m minBytes] topic-name
topic-name:主题名称(必填);-a:从主题起始位置显示所有消息;-k:显示消息键(默认不显示);-m minBytes:指定最小拉取字节数(默认 1)。db_changes 主题,显示所有消息及键:
bashdocker run -it --rm --link zookeeper:zookeeper --link kafka:kafka quay.io/debezium/kafka watch-topic -a -k db_changes
通过临时容器列出所有主题:
bashdocker run -it --rm --link zookeeper:zookeeper quay.io/debezium/kafka list-topics
以下为包含 Zookeeper 和 Kafka 的本地部署示例:
yamlversion: '3' services: zookeeper: image: debezium/zookeeper:latest ports: - "2181:2181" environment: - ZOOKEEPER_CLIENT_PORT=2181 # Zookeeper 客户端端口 kafka: image: quay.io/debezium/kafka:latest ports: - "9092:9092" links: - zookeeper:zookeeper # 链接 Zookeeper 服务 environment: - BROKER_ID=1 # 唯一 broker ID - ZOOKEEPER_CONNECT=zookeeper:2181 # Zookeeper 连接地址 - HOST_NAME=kafka # 绑定主机名 - ADVERTISED_HOST_NAME=localhost # 客户端连接用主机名 - HEAP_OPTS=-Xmx512M -Xms512M # JVM 堆内存配置 - CREATE_TOPICS=test_topic:3:1:delete # 启动时创建主题(名称:分区数:副本数:清理策略)
| 环境变量 | 作用说明 | 默认值 |
|---|---|---|
BROKER_ID | broker 唯一标识符,集群中需唯一 | 1 |
ZOOKEEPER_CONNECT | Zookeeper 连接地址(格式参考 Kafka zookeeper.connect 属性) | 链接 zookeeper 容器时自动配置 |
HOST_NAME | broker 绑定的主机名 | 容器主机名 |
ADVERTISED_HOST_NAME | 注册到 Zookeeper 的客户端连接主机名,默认使用 HOST_NAME 的值 | HOST_NAME 的值 |
HEAP_OPTS | JVM 堆内存配置 | -Xmx1G -Xms1G |
CREATE_TOPICS | 启动时自动创建的主题列表,格式:topic:partitions:replicas[:cleanupPolicy] | 无 |
LOG_LEVEL | 日志级别(INFO/WARN/ERROR/DEBUG/TRACE) | INFO |
以 KAFKA_ 为前缀的环境变量会自动转换为 Kafka 配置属性,转换规则:
KAFKA_ 前缀;_ 转为点 .。示例:
KAFKA_ADVERTISED_HOST_NAME → advertised.host.name
KAFKA_AUTO_CREATE_TOPICS_ENABLE → auto.create.topics.enable
注意:环境变量值中不可包含
@字符。
容器暴露 Kafka 标准端口 9092,可通过 -p 参数映射到主机端口(如 -p 9093:9092 将容器 9092 端口映射到主机 9093 端口)。
/kafka/data)/kafka/data/<BROKER_ID>/。-v /host/kafka/data:/kafka/data),否则容器停止后数据丢失。/kafka/logs)server.log:控制台输出日志;state-change.log:控制器与 broker 状态变更记录;kafka-request.log:请求处理记录;log-cleaner.log:日志压缩详情;controller.log:控制器活动日志(如分区 leader 选举)。-v /host/kafka/logs:/kafka/logs)持久化日志。/kafka/config)server.properties),启动时会根据环境变量和链接容器自动更新配置。探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
MacOS OrbStack 容器配置
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务