我正在运行最新版本的Docker Apple Silicon Preview。我创建了教程容器/图像,它工作得很好。当我去创建一个自定义YAML文件并运行docker-compose时,我在拉mysql时得到以下错误:

错误:在清单列表条目中没有匹配linux/arm64/v8的清单

下面是我YAMl文件中的一个片段:

version: '3'

services:
  # Database
  db:
    image: mysql-server:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: pass
      MYSQL_DATABASE: wp
      MYSQL_USER: wp
      MYSQL_PASSWORD: wp
    networks:
      - wpsite 

我尝试了:latest和:8,结果是相同的错误。它拉phpmyadmin和wordpress很好。


当前回答

Docker在其官方文档中写道:

并非所有映像都可用于ARM64体系结构。你可以添加 ——linux/amd64平台在模拟下运行Intel映像。在 特别的,mysql映像在ARM64中不可用。你可以工作 通过使用mariadb映像来解决这个问题。

(源)

所以你应该做的是让你的项目工作是添加platform: linux/amd64到docker-compose.yml。

它看起来是这样的:

services:
    mysql:
        image: mysql:5.7
        platform: linux/amd64
        ...

你可以想象,表演可能会不一样。

其他回答

对于那些努力使用特定版本的人来说,下面的方法对我来说并不适用:

docker run --platform linux/x86_64 mysql:5.7.26 -e MYSQL_ROOT_PASSWORD=pass

但这确实起了作用:

 docker run --platform linux/x86_64 mysql:5.7 -e MYSQL_ROOT_PASSWORD=pass

使用下面的图片解决了我的问题。

mysql/mysql-server:8.0.23

可以尝试启动/运行容器(适用于MAC m1)

docker run -d -p 3306:3306 --name mysql --platform linux/x86_64 --env MYSQL_ROOT_PASSWORD=12345 mysql

我有M1芯片。

今天我发现这在最新的KSQL主分支中工作得很好。下面是命令

git clone https://github.com/confluentinc/ksql.git
cd ksql
docker-compose up -d

它神奇地打开了Zookeeper、三个Kafka服务器实例、一个Schema Registry和一个CLI。

参考: KSQLDB Docker指南

这是为任何在这里遇到相同问题但使用ibmcom/db2的人准备的

可以使用下面的命令拉出db2映像

docker pull --platform linux/x86_64 ibmcom/db2:latest