hausgold/kafka本镜像基于apache/kafka镜像构建,集成mDNS/ZeroConf协议栈(2.x版本曾基于wurstmeister/kafka,需依赖Zookeeper)。您可以直接使用Apache Kafka,默认通过kafka.local:9092访问单节点KRaft模式集群,无需Zookeeper。
如需启动单节点Apache Kafka服务,创建docker-compose.yml并添加以下内容(基于官方示例):
yamlservices: kafka: image: hausgold/kafka environment: MDNS_HOSTNAME: kafka.local # 参考:[***] 了解Kafka资源调整 KAFKA_HEAP_OPTS: -Xmx256M -Xms32M ulimits: # 由于systemd/pam的RLIMIT_NOFILE设置(容器内最大整数),Java进程可能分配过大限制,导致"无法分配文件描述符表 - 内存不足"错误。 # 降低此值可临时解决该问题。 # 参考:[***] # 参考:[***] nofile: soft: *** hard: ***
使用以下命令启动服务:
bash$ docker-compose up
安装nss-mdns包,启用并启动avahi-daemon.service。然后编辑/etc/nsswitch.conf文件,修改hosts行如下:
bashhosts: ... mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns ...
通过MDNS_HOSTNAME环境变量自定义mDNS主机名,示例:
bash$ docker run --rm -e MDNS_HOSTNAME=something.else.local hausgold/kafka
上述命令将使服务通过something.else.local访问。
通过MDNS_CNAMES环境变量可配置多个别名(CNAME),以逗号分隔:
bash$ docker run --rm \ -e MDNS_HOSTNAME=something.else.local \ -e MDNS_CNAMES=nothing.else.local,special.local \ hausgold/kafka
上述配置将同时启用something.else.local、nothing.else.local和special.local访问。
默认使用.local作为mDNS顶级域名,镜像不强制限制,但使用非.local域名时,需配置主机Avahi服务以支持自定义TLD。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务