在 Apple M1 芯片中强制 Docker 使用 amd64

avatar
Mofei Zhu

在Linux或者Window等AMD64架构的机器上(AWS EC2、ECS, 阿里云函数计算等)使用苹果M1芯片上的构建的Docker镜像(或者其他ARM64架构的机器构建的镜像)会带来一些问题。因此为了在上述平台部署苹果芯片构建的镜像我们需要指定构建AMD64架构的镜像。

有几种方法可以实现:

  1. 在你的环境中指定 DOCKER_DEFAULT_PLATFORM 参数

    你可以直接在构建之前运行 export DOCKER_DEFAULT_PLATFORM=linux/amd64,或者把这句话放到你的.bashrc.zshenv或者.zshrc等文件中,这样可以避免每次都去设置

  2. Dockerfile 的From中指定平台

    比如

    FROM --platform=linux/amd64 python:3.7-alpine
  3. 如果使用 docker-compose 构建,可以指定 paltform: linux/amd64

    services:  
      servername:  
        platform: linux/amd64
        ......

参考来源: https://stackoverflow.com/questions/65612411/forcing-docker-to-use-linux-amd64-platform-by-default-on-macos

HI 我是Mofei

扫码关注我的公众号