如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
注意:这是https://hub.docker.com/_/zookeeper%E7%9A%84%60arm64v8%60%E6%9E%B6%E6%9E%84%E4%B8%93%E7%94%A8%E4%BB%93%E5%BA%93%E2%80%94%E2%80%94%E6%9B%B4%E5%A4%9A%E4%BF%A1%E6%81%AF%EF%BC%8C%E8%AF%B7%E5%8F%82%E8%A7%81%E5%AE%98%E6%96%B9%E9%95%9C%E5%83%8F%E6%96%87%E6%A1%A3%E4%B8%AD%E7%9A%84%E2%80%9Chttps://github.com/docker-library/official-images#architectures-other-than-amd64%E2%80%9D%E5%92%8C%E5%AE%98%E6%96%B9%E9%95%9C%E5%83%8FFAQ%E4%B8%AD%E7%9A%84%E2%80%9Chttps://github.com/docker-library/faq#an-images-source-changed-in-git-now-what%E2%80%9D%E3%80%82
维护者:
https://github.com/31z4/zookeeper-docker
获取帮助:
Docker社区Slack、Server Fault、Unix & Linux或Stack Overflow
Dockerfile链接https://github.com/31z4/zookeeper-docker/blob/ec1050affd761a7886c1f1f5d***c19d3143e8/3.8.4/Dockerfile
https://github.com/31z4/zookeeper-docker/blob/c56b077b4858f22bfc5014cfb3c570d78c56a71d/3.9.4/Dockerfile
问题反馈:
https://github.com/31z4/zookeeper-docker/issues?q=
支持的架构:(https://github.com/docker-library/official-images#architectures-other-than-amd64)
https://hub.docker.com/r/amd64/zookeeper/%E3%80%81https://hub.docker.com/r/arm64v8/zookeeper/%E3%80%81https://hub.docker.com/r/ppc64le/zookeeper/%E3%80%81https://hub.docker.com/r/s390x/zookeeper/
镜像 artifact 详情:
https://github.com/docker-library/repo-info/blob/master/repos/zookeeper%EF%BC%88https://github.com/docker-library/repo-info/commits/master/repos/zookeeper%EF%BC%89
(镜像元数据、传输大小等)
镜像更新:
https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fzookeeper
https://github.com/docker-library/official-images/blob/master/library/zookeeper%EF%BC%88https://github.com/docker-library/official-images/commits/master/library/zookeeper%EF%BC%89
本描述的来源:
https://github.com/docker-library/docs/tree/master/zookeeper%EF%BC%88https://github.com/docker-library/docs/commits/master/zookeeper%EF%BC%89
Apache ZooKeeper是Apache软件基金会的一个软件项目,提供开源的分布式配置服务、同步服务和命名注册,适用于大型分布式系统。ZooKeeper曾是Hadoop的子项目,现在是独立的顶级项目。
***.org/wiki/Apache_ZooKeeper
!https://raw.githubusercontent.com/docker-library/docs/f906e95d1c27856aa79ea1bd8600da51466e7b0b/zookeeper/logo.png
console$ docker run --name some-zookeeper --restart always -d arm64v8/zookeeper
此镜像包含EXPOSE 2181 2888 3888 8080(分别对应Zookeeper客户端端口、跟随者端口、选举端口、AdminServer端口),因此标准容器链接会自动使其对链接的容器可用。由于Zookeeper采用“快速失败”机制,建议始终重启容器。
console$ docker run --name some-app --link some-zookeeper:zookeeper -d application-that-uses-zookeeper
console$ docker run -it --rm --link some-zookeeper:zookeeper arm64v8/zookeeper zkCli.sh -server zookeeper
zookeeper的compose.yaml示例:
yamlservices: zoo1: image: zookeeper restart: always hostname: zoo1 ports: - 2181:2181 environment: ZOO_MY_ID: 1 ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181 zoo2: image: zookeeper restart: always hostname: zoo2 ports: - 2182:2181 environment: ZOO_MY_ID: 2 ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181 zoo3: image: zookeeper restart: always hostname: zoo3 ports: - 2183:2181 environment: ZOO_MY_ID: 3 ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
这将以复制模式启动Zookeeper。运行docker compose up并等待其完全初始化。端口2181-2183将被暴露。
请注意,在单台机器上设置多个服务器不会提供冗余。如果机器发生故障,所有Zookeeper服务器都将离线。完全冗余要求每个服务器拥有独立的物理机器,同一物理主机上的多个虚拟机仍面临主机故障的风险。
在复制模式下运行Zookeeper时,建议使用Docker Swarm。
Zookeeper配置位于/conf目录。修改配置的一种方式是将自定义配置文件挂载为卷:
console$ docker run --name some-zookeeper --restart always -d -v $(pwd)/zoo.cfg:/conf/zoo.cfg arm64v8/zookeeper
如果未提供zoo.cfg文件,将使用Zookeeper推荐的默认配置。可通过以下环境变量覆盖默认值:
console$ docker run -e "ZOO_INIT_LIMIT=10" --name some-zookeeper --restart always -d arm64v8/zookeeper
ZOO_TICK_TIME默认值为2000。Zookeeper的tickTime
单个tick的时长(以毫秒为单位),是Zookeeper使用的基本时间单位,用于调节心跳和超时。例如,最小会话超时为两个tick。
ZOO_INIT_LIMIT默认值为5。Zookeeper的initLimit
允许跟随者连接并同步到领导者的时间(以tick为单位,参见tickTime)。如果Zookeeper管理的数据量较大,需增加此值。
ZOO_SYNC_LIMIT默认值为2。Zookeeper的syncLimit
允许跟随者与Zookeeper同步的时间(以tick为单位,参见tickTime)。如果跟随者落后领导者过多,将被剔除。
ZOO_MAX_CLIENT_CNXNS默认值为60。Zookeeper的maxClientCnxns
限制单个客户端(按IP地址标识)对Zookeeper集群中单个成员的并发连接数(套接字级别)。
ZOO_STANDALONE_ENABLED默认值为true。Zookeeper的standaloneEnabled
在3.5.0之前,Zookeeper可运行在独立模式或分布式模式,这是两个独立的实现栈,运行时无法切换。默认情况下(为保持向后兼容性),
standaloneEnabled设为true。此默认值的后果是:如果以单个服务器启动,集群将不允许扩容;如果以多个服务器启动,集群将不允许缩容至少于两个节点。
ZOO_ADMINSERVER_ENABLED默认值为true。Zookeeper的admin.enableServer
AdminServer是一个嵌入式Jetty服务器,提供HTTP接口以执行四字命令。默认情况下,服务器在端口8080启动,可通过URL“/commands/[命令名]”执行命令,例如:http://localhost:8080/commands/stat。
ZOO_AUTOPURGE_PURGEINTERVAL默认值为0。Zookeeper的autoPurge.purgeInterval
自动清理任务的触发时间间隔(小时)。设为正整数(1及以上)以启用自动清理。默认值为0。
ZOO_AUTOPURGE_SNAPRETAINCOUNT默认值为3。Zookeeper的autoPurge.snapRetainCount
启用后,Zookeeper自动清理功能将在
dataDir和dataLogDir中保留最近的autopurge.snapRetainCount个快照及对应的事务日志,删除其余文件。默认值为3,最小值为3。
ZOO_4LW_COMMANDS_WHITELIST默认值为srvr。Zookeeper的4lw.commands.whitelist
用户希望使用的四字命令列表(逗号分隔)。必须将有效的四字命令加入此列表,否则Zookeeper服务器不会启用该命令。默认情况下,白名单仅包含zkServer.sh使用的“srvr”命令,其他四字命令默认禁用。
ZOO_CFG_EXTRA并非所有Zookeeper配置项都通过上述环境变量暴露,这些变量仅涵盖基本配置关键字和部分常用选项。如果挂载自定义配置文件不适用,可使用ZOO_CFG_EXTRA环境变量添加任意配置参数。以下示例展示如何在端口7070启用Prometheus指标导出器:
console$ docker run --name some-zookeeper --restart always -e ZOO_CFG_EXTRA="metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider metricsProvider.httpPort=7070" arm64v8/zookeeper
JVMFLAGS许多Zookeeper高级配置项可通过Java系统属性(格式为-Dproperty=value)在此设置。例如,使用Netty而非NIO(默认)作为服务器通信框架:
console$ docker run --name some-zookeeper --restart always -e JVMFLAGS="-Dzookeeper.serverCnxnFactory=org.apache.zookeeper.server.NettyServerCnxnFactory" arm64v8/zookeeper
参见高级配置获取支持的Java系统属性完整列表。
JVMFLAGS的另一个示例是设置JVM最大堆大小为1GB:
console$ docker run --name some-zookeeper --restart always -e JVMFLAGS="-Xmx1024m" arm64v8/zookeeper
在复制模式下运行Zookeeper时,以下环境变量为必填项:
ZOO_MY_IDID在集群中必须唯一,取值范围为1-255。注意:如果启动容器时/data目录已包含myid文件,此变量将无效。
ZOO_SERVERS此变量用于指定Zookeeper集群的机器列表。每个条目格式为:server.id=<address1>:<port1>:<port2>[:role];[<client port address>:]<client port>(Zookeeper动态重配置)。条目之间用空格分隔。注意:如果启动容器时/conf目录已包含zoo.cfg文件,此变量将无效。
此镜像配置了/data和/datalog卷,分别用于存储Zookeeper内存数据库快照和数据库更新事务日志。
注意事务日志的存储位置。专用的事务日志设备是保证稳定高性能的关键,将日志放在繁忙设备上会影响性能。
默认情况下,Zookeeper将标准输出/错误重定向到控制台。从3.8版本开始,Zookeeper使用LOGBack作为日志后端。默认logback.xml文件位于/conf目录。要覆盖默认日志配置,可将自定义配置文件挂载为卷:
console$ docker run --name some-zookeeper --restart always -d -v $(pwd)/logback.xml:/conf/logback.xml arm64v8/zookeeper
更多详情参见ZooKeeper日志。
通过传递环境变量ZOO_LOG4J_PROP可将日志重定向到/logs目录下的文件:
console$ docker run --name some-zookeeper --restart always -e ZOO_LOG4J_PROP="INFO,ROLLINGFILE" arm64v8/zookeeper
这会将日志写入/logs/zookeeper.log。此镜像配置了/logs卷以方便使用。
查看此镜像包含软件的https://github.com/apache/zookeeper/blob/master/LICENSE.txt%E3%80%82
与所有Docker镜像一样,此镜像可能还包含其他软件(如基础发行版中的Bash等,以及主软件的直接或间接依赖),这些软件可能具有其他许可证。
部分可自动检测的额外许可证信息可在https://github.com/docker-library/repo-info/tree/master/repos/zookeeper%E4%B8%AD%E6%89%BE%E5%88%B0%E3%80%82
对于任何预构建镜像的使用,镜像用户有责任确保其使用符合包含的所有软件的相关许可证要求。
以下是 arm64v8/zookeeper 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


来自真实用户的反馈,见证轩辕镜像的优质服务