Docker 镜像在 m1 处理器中运行

Ioa*_*los 12 mysql macos docker docker-compose apple-m1

我只能在我的 macbook air m1 上玩 docker 预览版,并且无法通过 docker-compose 文件运行版本 8.0.22 的 mysql 映像。

docker-compose 集

我运行的命令是:docker-compose up -d mysql

我怎么解决这个问题?

mae*_*tro 10

我们刚刚遇到了这个问题,我从这个答案中找到了解决方案。您可以在文件中指定您的平台docker-compose,因此在您的情况下它看起来像:

services:
  mysql:
    image: mysql:8.0.22
    platform: linux/x86_64
    container_name: mysqldb
    restart: always
    ports:
      - 3306:3306
    volumes:
      - mysql:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=test
      - MYSQL_DATABASE=DATA
Run Code Online (Sandbox Code Playgroud)

在我们公司,我们使用 M1 和 Intel Mac,该解决方案使 mysql 映像可用于两者。


jor*_*ski 5

M1 是 ARMv8 (aarch64) 架构,大多数映像是 X86 (amd64)。对于 Docker for Mac 的 ARMv8 版本来说,基于允许从其他架构运行容器的整个模拟过程bitfmt仍然不稳定,因此您需要等待一些时间。

解决这个问题的一种方法是构建您自己的mysqlARM64 映像,从一些 Linux 发行版(例如alpine、 、debian)开始ubuntu,然后安装 mysql 服务器(与在裸机安装上所做的相同)。

您可以在 docker hub 中找到许多标记为ARM64v8的容器,因此这可以作为创建映像的良好起点。