
用于以独立模式运行https://github.com/apache/kafka/%E7%9A%84%E5%AE%B9%E5%99%A8%E9%95%9C%E5%83%8F%E3%80%82
镜像中包含的Kafka发行版直接从https://github.com/apache/kafka/%E6%9E%84%E5%BB%BA%E3%80%82%E7%8B%AC%E7%AB%8B%E6%A8%A1%E5%BC%8F%E5%AE%B9%E5%99%A8%E9%95%9C%E5%83%8F%E5%9F%BA%E4%BA%8Ehttps://hub.docker.com/repository/docker/ueisele/apache-kafka-connect%E3%80%82
容器镜像可在Docker Hub仓库https://hub.docker.com/repository/docker/ueisele/apache-kafka-connect-standalone%E8%8E%B7%E5%8F%96%EF%BC%8C%E9%95%9C%E5%83%8F%E6%BA%90%E6%96%87%E4%BB%B6%E4%BD%8D%E4%BA%8EGitLab%E4%BB%93%E5%BA%93ueisele/kafka-images%E3%80%82
重要提示:Kafka Connect Standalone不适合大多数生产用例。它不支持扩展,且外部系统的偏移量仅存储在文件中。另请参见:[***]
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-standalone:3.6.0-SNAPSHOT-g09e8adb。
容器镜像基于https://hub.docker.com/repository/docker/ueisele/zulu-openjdk-micro%EF%BC%8C%E5%85%B6%E4%B8%AD%E5%AE%89%E8%A3%85%E4%BA%86JRE%EF%BC%88%E4%BE%8B%E5%A6%8220-jre%EF%BC%89%E3%80%82
该OpenJDK镜像又基于https://hub.docker.com/r/almalinux/9-micro%E3%80%82
OpenJDK使用Azul Zulu,Azul Zulu构建的OpenJDK是经过全面测试且符合TCK标准的OpenJDK构建版本。
以下部分提供了运行Apache Kafka Connect的简单示例。
首先创建容器网络:
bashpodman network create quickstart-kafka-connect-standalone
启动单个Kafka实例:
bashpodman run -d --name kafka --net quickstart-kafka-connect-standalone -p 9092:9092 ueisele/apache-kafka-server-standalone:3.5.0
以独立模式运行Apache Kafka Connect:
bashpodman run -d --name kafka-connect-standalone \ --net quickstart-kafka-connect-standalone -p 8083:8083 \ -e PLUGIN_INSTALL_CONFLUENT_HUB_IDS=confluentinc/kafka-connect-datagen:latest \ -e CONNECT_BOOTSTRAP_SERVERS=kafka:9092 \ -e CONNECT_KEY_CONVERTER=org.apache.kafka.connect.storage.StringConverter \ -e CONNECT_VALUE_CONVERTER=org.apache.kafka.connect.json.JsonConverter \ -e CONNECT_VALUE_CONVERTER_SCHEMAS_ENABLE="false" \ -e CONNECT_OFFSET_FLUSH_INTERVAL_MS=5000 \ -e CONNECTOR_NAME=datagen-source \ -e CONNECTOR_CONNECTOR_CLASS=io.confluent.kafka.connect.datagen.DatagenConnector \ -e CONNECTOR_TASKS_MAX=1 \ -e CONNECTOR_KAFKA_TOPIC=connect-datagen-source \ -e CONNECTOR_QUICKSTART=users \ ueisele/apache-kafka-connect-standalone:3.5.0
消费已发布的消息:
bashpodman run --rm -it --net quickstart-kafka-connect-standalone ueisele/apache-kafka-server-standalone:3.5.0 \ kafka-console-consumer.sh \ --bootstrap-server kafka:9092 \ --topic connect-datagen-source \ --from-beginning
更多示例可在examples/connect-standalone/中找到:
对于Apache Kafka Connect (https://hub.docker.com/repository/registry-1.docker.io/ueisele/apache-kafka-connect/)%E9%95%9C%E5%83%8F%EF%BC%8C%E9%9C%80%E5%B0%86Apache Kafka Connect配置属性按以下规则转换为环境变量:
该配置与Confluent Docker镜像完全兼容。
配置机制支持环境变量值使用Go Template。模板由https://github.com/ueisele/go-docker-utils%E5%A4%84%E7%90%86%EF%BC%8C%E5%9B%A0%E6%AD%A4%E6%8F%90%E4%BE%9B%E5%85%B6https://github.com/ueisele/go-docker-utils#template-functions%E3%80%82
最小必要工作配置为CONNECT_BOOTSTRAP_SERVERS(定义Kafka引导服务器)以及CONNECT_KEY_CONVERTER和CONNECT_VALUE_CONVERTER(定义键和值的转换器)。
yamlCONNECT_BOOTSTRAP_SERVERS: kafka:9092 CONNECT_KEY_CONVERTER: org.apache.kafka.connect.storage.StringConverter CONNECT_VALUE_CONVERTER: org.apache.kafka.connect.storage.StringConverter
连接器的最小必要配置为CONNECTOR_NAME(定义连接器实例名称)和CONNECTOR_CONNECTOR_CLASS(定义实现连接器的类)。
yamlCONNECTOR_NAME: file-source CONNECTOR_CONNECTOR_CLASS: FileStreamSource
Kafka Connect standalone在文件中维护偏移量。默认文件位于/opt/apache/kafka/data/connect.offsets。可通过以下配置更改文件名:
yamlCONNECT_STANDALONE_OFFSET_STORAGE_FILE_FILENAME: file-source.offsets
为保存偏移量,应始终将/opt/apache/kafka/data/目录挂载为专用卷。
还可指定偏移量刷新间隔,默认值为一分钟:
yamlCONNECT_OFFSET_FLUSH_INTERVAL_MS: 5000
可通过以下环境变量调整日志配置:
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
某些配置无法转换为环境变量键/值模式,例如使用驼峰式的配置变量(如transforms.expandvalue.sourceFields=value)。
为支持此类配置,可定义名称前缀为CONNECTORPROPERTIES_的环境变量。其内容将原样添加到连接器配置中。
以下是SMT配置示例:
yamlCONNECTORPROPERTIES_TRANSFORMS: | transforms.expandvalue.type=com.redhat.insights.expandjsonsmt.ExpandJSON$Value transforms.expandvalue.sourceFields=value
完整示例设置可参见examples/connect-standalone/http-source-plugin-install/compose.yaml。
可通过多阶段构建安装Kafka Connect插件。connect/Containerfile可作为示例。
如果需要直接在镜像中安装插件,可使用https://hub.docker.com/repository/docker/ueisele/apache-kafka-connect-standalone-dev%E3%80%82
此Kafka Connect镜像预装了Confluent的Avro、Protobuf和JSON Schema转换器,以简化Confluent Schema Registry的使用:
此外,还预装了Confluent Connect SMTs:
要创建自己的Apache Kafka Connect standalone容器镜像,需克隆ueisele/kafka-image Git仓库并运行build命令:
bashgit clone https://gitlab.com/ueisele/kafka-images.git cd kafka-images connect-standalone/build.sh --build --tag 3.5.0 --openjdk-release 20
要创建特定OpenJDK版本的镜像,使用以下命令:
bashconnect-standalone/build.sh --build --tag 3.5.0 --openjdk-release 20 --openjdk-version 20.0.1
要构建Apache Kafka 3.5.0的最新SNAPSHOT版本(使用Java 17),运行:
bashconnect-standalone/build.sh --build --branch trunk --openjdk-release 17
connect-standalone/build.sh脚本提供以下选项:
Usage: connect-standalone/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 20.0.1]
此容器镜像根据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 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务