【问题标题】:How to make docker-compose work on M1 chip?如何让 docker-compose 在 M1 芯片上工作?
【发布时间】:2021-10-25 13:23:47
【问题描述】:

我是 m1 macbook 的新手,在运行 docker-compose 时遇到问题,如下所示:

version: "3.7"

services:
  search:
    platform: linux/x86_64
    build:
      context: .
      dockerfile: Dockerfile.kubectl
  

还有 Dockerfile:

FROM ubuntu:latest

RUN apt-get update && apt-get install -y apt-transport-https curl gnupg2 unzip
RUN curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
RUN echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | tee -a /etc/apt/sources.list.d/kubernetes.list
RUN apt-get update && apt-get install -y kubectl

RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" && unzip awscliv2.zip && rm awscliv2.zip
RUN ./aws/install

运行后出现这样的错误:

2021-09-30T13:24:52.816038712Z /lib64/ld-linux-x86-64.so.2: No such file or directory

解决此问题的具体步骤是什么?我的 Docker 版本是 4.1.1

【问题讨论】:

  • 你的物理硬件不是x86_64;你为什么要设置错误的架构?
  • @DavidMaze 建议顺便回答一下这个问题。我正在为 m1 拱门寻求正确的方法

标签: docker docker-compose apple-m1


【解决方案1】:

我相信您正在运行的映像适用于 x86_64 平台,因此它会尝试查找 x86-64.so,但您在 arm 机器上,因此它不起作用。您可以安装 arm64 的映像或尝试运行如下命令:

docker run --platform linux/x86_64 <image>

【讨论】:

  • 我在问题描述的 docker-compose 中指定了平台,它是 linux/x86_64。当我在这个平台上运行我的 docker-compose 时,我得到这样的错误:来自守护进程的错误响应:找到带有参考搜索的图像但与指定的平台不匹配:想要 linux/amd64,实际:linux/arm64/v8 什么是正确的如何运行 docker-compose 以避免这种情况?
  • 如果他们的答案相同,请将此问题标记为与其他问题重复。
【解决方案2】:

对我来说,我添加了platform: linux/amd64

例子:

version: "3.7"

services:
  search:
    platform: linux/amd64
    build:
      context: .
      dockerfile: Dockerfile.kubectl

【讨论】:

    猜你喜欢
    • 2021-10-19
    • 1970-01-01
    • 2022-12-25
    • 2021-04-10
    • 2022-07-19
    • 2021-09-27
    • 2022-11-29
    • 1970-01-01
    • 2022-11-11
    相关资源
    最近更新 更多