我正在关注多容器应用教程的官方 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 匹配的清单 条目。
答案 0 :(得分:1)
如果其他人在遵循 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
答案 1 :(得分:0)
当您查看官方 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 映像,您可以尝试在同一问题 here 中提到的解决方法。到目前为止,我无法对此进行测试,因为我没有 m1 macbook。