
ueisele/apache-kafka-connect运行Apache Kafka Connect开源版本的容器镜像,支持分布式模式。镜像中包含的Kafka发行版直接基于源码构建。
该Kafka Connect容器镜像基于ueisele/apache-kafka-connect-base,内置Confluent Hub Cli及额外的Kafka Connect插件。
容器镜像可在Docker Hub仓库ueisele/apache-kafka-connect获取,镜像源码文件位于GitLab仓库ueisele/kafka-images。
RELEASE构建的最新标签:
3.5.0, 3.5.0-zulu20, 3.5.0-zulu20.0.1, 3.5.0-zulu20-alma9.2, 3.5.0-zulu20.0.1-alma9.2-202305123.4.1, 3.4.1-zulu17, 3.4.1-zulu17.0.7, 3.4.1-zulu17-alma9.2, 3.4.1-zulu17.0.7-alma9.2-20230512SNAPSHOT构建的最新标签:
3.6.0-SNAPSHOT, 3.6.0-SNAPSHOT-zulu20, 3.6.0-SNAPSHOT-zulu20.0.1, 3.6.0-SNAPSHOT-zulu20-alma9.2, 3.6.0-SNAPSHOT-zulu20.0.1-alma9.2-20230512此外,还会发布带有Apache Kafka发行版构建关联Git-Sha的标签,例如ueisele/apache-kafka-connect:3.6.0-SNAPSHOT-g09e8adb。
容器镜像基于ueisele/zulu-openjdk-micro(已安装JRE,如20-jre)构建。
该OpenJDK镜像又基于AlmaLinux 9 Micro。
OpenJDK使用Azul Zulu,其构建经过全面测试且符合TCK标准。
以下是运行Apache Kafka Connect的简单示例。
首先创建容器网络:
bashpodman network create quickstart-kafka-connect
启动单个Kafka实例:
bashpodman run -d --name kafka --net quickstart-kafka-connect -p 9092:9092 ueisele/apache-kafka-server-standalone:3.5.0
运行单个Apache Kafka Connect实例:
bashpodman run -d --name kafka-connect --net quickstart-kafka-connect -p 8083:8083 \ -e CONNECT_BOOTSTRAP_SERVERS=kafka:9092 \ -e CONNECT_REST_ADVERTISED_HOST_NAME=localhost \ -e CONNECT_REST_PORT=8083 \ -e CONNECT_GROUP_ID=quickstart-kafka-connect \ -e CONNECT_CONFIG_STORAGE_TOPIC=quickstart-kafka-connect-config \ -e CONNECT_OFFSET_STORAGE_TOPIC=quickstart-kafka-connect-offsets \ -e CONNECT_STATUS_STORAGE_TOPIC=quickstart-kafka-connect-status \ -e CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR=1 \ -e CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR=1 \ -e CONNECT_STATUS_STORAGE_REPLICATION_FACTOR=1 \ -e CONNECT_KEY_CONVERTER=org.apache.kafka.connect.json.JsonConverter \ -e CONNECT_KEY_CONVERTER_SCHEMAS_ENABLE=false \ -e CONNECT_VALUE_CONVERTER=org.apache.kafka.connect.json.JsonConverter \ -e CONNECT_VALUE_CONVERTER_SCHEMAS_ENABLE=false \ ueisele/apache-kafka-connect:3.5.0
更多示例见examples/connect-standalone/:
对于Apache Kafka Connect镜像(ueisele/apache-kafka-connect),需将Apache Kafka Connect配置属性按以下规则转换为环境变量:
CONNECT_配置与Confluent Docker镜像完全兼容。
配置机制支持环境变量值使用Go Template。模板由godub处理,因此支持其模板函数。
示例:使用ipAddress函数获取第一个网络接口的IPv4地址:
propertiesCONNECT_REST_ADVERTISED_HOST_NAME="{{ ipAddress \"prefer\" \"ipv4\" 0 }}"
最小化工作器配置要求:
CONNECT_BOOTSTRAP_SERVERS:Kafka引导服务器CONNECT_KEY_CONVERTER和CONNECT_VALUE_CONVERTER:键和值的转换器CONNECT_GROUP_ID:标识工作器所属的Connect集群组CONNECT_CONFIG_STORAGE_TOPIC、CONNECT_OFFSET_STORAGE_TOPIC、CONNECT_STATUS_STORAGE_TOPIC:存储连接器任务、配置、偏移量和状态更新的主题名称,每个Connect集群需唯一CONNECT_REST_ADVERTISED_HOST_NAME:提供给其他工作器连接的主机名,需所有容器可解析可通过以下环境变量调整日志配置:
CONNECT_LOG4J_PATTERN:日志格式(默认:[%d] (%t) %p %m (%c)%n)CONNECT_LOG4J_ROOT_LOGLEVEL:根日志级别(默认:INFO)CONNECT_LOG4J_LOGGERS:逗号分隔的日志器与级别键值对(默认:org.reflections=ERROR,org.apache.zookeeper=ERROR,org.I0Itec.zkclient=ERROR)通过以下环境变量启用远程JMX:
propertiesKAFKA_JMX_PORT=6001 KAFKA_JMX_HOSTNAME=localhost
调试Kafka Connect需设置:
propertiesKAFKA_DEBUG=y
可通过以下环境变量配置调试行为:
propertiesJAVA_DEBUG_PORT=5005 DEBUG_SUSPEND_FLAG=y
可通过多阶段构建安装插件,示例见connect/Containerfile。
如需直接在镜像中安装插件,可使用ueisele/apache-kafka-connect-dev。
镜像预装以下插件以简化Confluent Schema Registry使用:
同时预装Confluent Connect SMTs:
如需创建自定义Apache Kafka Connect容器镜像,克隆ueisele/kafka-image Git仓库并运行构建命令:
bashgit clone https://gitlab.com/ueisele/kafka-images.git cd kafka-images connect/build.sh --build --tag 3.5.0 --openjdk-release 20
指定OpenJDK版本构建:
bashconnect/build.sh --build --tag 3.5.0 --openjdk-release 20 --openjdk-version 20.0.1
默认Apache Kafka 3.0.0不支持Java 17,如需使用Java 17构建,需用patch/3.0.0-openjdk17.patch补丁Gradle配置:
bashconnect/build.sh --build --tag 3.0.0 --openjdk-release 17 --patch 3.0.0-openjdk17.patch
构建Apache Kafka 3.5.0最新SNAPSHOT(Java 17):
bashconnect/build.sh --build --branch trunk --openjdk-release 17
connect/build.sh脚本支持以下选项:
Usage: connect/build.sh [--build] [--push] [--registry docker.io] [--user ueisele] [--archs amd64,arm64] [--github-repo apache/kafka] [--commit-sha 09e8adb] [--tag 3.5.0] [--branch trunk] [--pull-request 9999] [--openjdk-release 20] [--openjdk-version a20.0.1] [--patch 3.0.0-openjdk17.patch]
容器镜像基于Apache 2许可证授权。


探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务