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

Ali*_*ien 3 mysql macos containers docker apple-silicon

我正在关注多容器应用程序教程的官方 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
Run Code Online (Sandbox Code Playgroud)

我收到以下错误。

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

小智 8

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

--platform linux/amd64
Run Code Online (Sandbox Code Playgroud)

喜欢

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
Run Code Online (Sandbox Code Playgroud)

归功于 https://github.com/docker/getting-started/issues/144


0xd*_*dnL 3

当你检查官方mysql镜像时,你可以看到没有提到linux/arm64/v8

对于mysql docker 文档甚至指出:

并非所有映像都适用于 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
Run Code Online (Sandbox Code Playgroud)

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

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