我正在运行最新版本的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很好。


当前回答

Oracle为arm64维护了MySQL 8.0.23 docker镜像。 https://hub.docker.com/r/mysql/mysql-server

在docker-compose文件中使用它

version: "3.8"
services:
  mysql:
    container_name: mycontainername
    image: mysql/mysql-server:8.0.23
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: mydatabasename
      MYSQL_ROOT_HOST: "%"
    command: --lower_case_table_names=1

其他回答

请注意,当在arm64/v8上使用——platform linux/x86_64时,你可能会失去linux本机AIO支持。

查看docker容器日志:

[ERROR] [MY-012585] [InnoDB] Linux Native AIO interface is not supported on this platform. Please check your OS documentation and install appropriate binary of InnoDB.
[Warning] [MY-012654] [InnoDB] Linux Native AIO disabled.

考虑使用mysql/mysql-server,因为它有arm64/v8开箱即用的支持。

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

mysql/mysql-server:8.0.23

我有M1芯片。

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

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

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

参考: KSQLDB Docker指南

这个Github回购允许构建一个MySQL 5.7 aarch64镜像。

用下面的命令构建它(命名它与正式的mysql:5.7镜像相同),它将在默认情况下被所有指定mysql:5.7的docker-compose配置或dockerfile使用。

docker build -t mysql:5.7 .

这意味着你将不再有来自官方MySQL Dockerhub回购的更新,但作为一个临时的替代品,我发现它很有用。

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

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