You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Docker拉取zookeeper:3.5.5时的manifest不匹配问题?

解决Docker在Apple Silicon(M1/M2)上拉取zookeeper:3.5.5失败的问题

核心问题修正:命令参数位置错误

你之前的命令中--platform linux/x86_64的位置错误,它是Docker的全局选项,需要放在镜像名称之前,而非作为容器启动命令传递。正确命令如下:

docker run -it --rm --name zookeeper --platform linux/x86_64 -p 2181:2181 -p 2888:2888 -p 3888:3888 zookeeper:3.5.5

备选方案1:使用支持ARM64架构的ZooKeeper版本

zookeeper 3.6及后续版本已提供ARM64原生镜像,无需架构模拟,直接运行:

docker run -it --rm --name zookeeper -p 2181:2181 -p 2888:2888 -p 3888:3888 zookeeper:3.6.3

此方案无模拟开销,性能更优。

备选方案2:开启Docker Desktop的Rosetta模拟

若必须使用3.5.5版本,先确保Docker Desktop开启Rosetta支持:

  1. 打开Docker Desktop偏好设置
  2. 进入Features in development选项卡
  3. 勾选Use Rosetta for x86/amd64 emulation on Apple Silicon
  4. 重启Docker Desktop后执行修正后的命令

备选方案3:本地构建ARM64版本的zookeeper:3.5.5镜像

若以上方法均无效,可手动构建镜像:

  1. 创建Dockerfile文件,内容如下:
FROM openjdk:8-jdk-arm64
ENV ZOO_VERSION=3.5.5
ENV ZOO_HOME=/opt/zookeeper-$ZOO_VERSION
RUN apt-get update && apt-get install -y wget && \
    wget https://archive.apache.org/dist/zookeeper/zookeeper-$ZOO_VERSION/apache-zookeeper-$ZOO_VERSION-bin.tar.gz && \
    tar -xzf apache-zookeeper-$ZOO_VERSION-bin.tar.gz -C /opt && \
    rm apache-zookeeper-$ZOO_VERSION-bin.tar.gz
WORKDIR $ZOO_HOME
EXPOSE 2181 2888 3888
CMD ["bin/zkServer.sh", "start-foreground"]
  1. 在Dockerfile所在目录执行构建命令:
docker build -t zookeeper:3.5.5 .
  1. 构建完成后直接运行原有启动命令即可

内容的提问来源于stack exchange,提问作者Jeff Cook

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 01:45:11