docker run mysql image 命令不起作用 [MacBook Pro M1]

问题描述 投票:0回答:4

我正在遵循官方的 docker labs 多容器应用程序实践教程。 在 MacBook Pro M1 终端

上运行以下命令时
docker run -d `
    --network todo-app --network-alias mysql `
    -v todo-mysql-data:/var/lib/mysql `
    -e MYSQL_ROOT_PASSWORD=secret `
    -e MYSQL_DATABASE=todos `
    mysql:5.7

我收到以下错误。

docker:清单列表中没有 linux/arm64/v8 的匹配清单 条目。

mysql macos docker containers apple-silicon
4个回答
26
投票

如果其他人在专门遵循 Mac M1 计算机上的指南时遇到此问题,最快的解决方法可能是添加该标志:

--platform linux/amd64

喜欢

docker run -d \
    --platform linux/amd64 \
    --network todo-app --network-alias mysql \
    -v todo-mysql-data:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=secret \
    -e MYSQL_DATABASE=todos \
    mysql:5.7

致谢 https://github.com/docker/getting-started/issues/144


3
投票

当你检查官方的mysql图像时,你可以看到没有提到

linux/arm64/v8

mysql
docker docs 的情况下甚至指出:

并非所有映像都适用于 ARM64 架构。您可以添加 --platform linux/amd64 以在模拟下运行 Intel 映像。特别是,mysql 映像不适用于 ARM64。您可以使用 mariadb 映像来解决此问题。

因此您可以使用 mariadb 作为解决方法,直到他们为

mysql
提供官方支持,如下所示:

docker run -d \
  -v todo-mysql-data:/var/lib/mysql \
  -e MYSQL_ROOT_PASSWORD=secret \
  -e MYSQL_DATABASE=todos \
  mariadb:10.5

参见:github.com/docker-library/mysql/issues/318

如果您确实需要 mysql 映像,您可以尝试同一问题此处中提到的解决方法。截至目前我无法测试这个,因为我没有 m1 macbook。


1
投票

如果您使用 docker compose 进行容器管理,您可以让您的

docker-compose.yaml
文件镜像与此类似的内容

services:
  mysql:
  platform: linux/amd64
  #you can use whatever image you prefer
  image: "mysql:5.7" 
  

0
投票

以下适用于我 MACOS M2

  mysql:
    image: mysql:8-oracle
    container_name: mysql
    restart: on-failure
    # platform: linux/amd64
    environment:
        - MYSQL_ROOT_PASSWORD=root
        - MYSQL_DATABASE=mydb
    # volumes:
    #     - /Users/piash/mysql:/var/lib/mysql
    ports:
        - 3308:3306

参考https://github.com/docker-library/mysql/issues/865

© www.soinside.com 2019 - 2024. All rights reserved.