You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M2 Mac使用Docker运行mysql:5.7报错/bin/bash无法执行二进制文件求助

M2 MacBook运行amd64 MySQL 5.7容器报错的原因与解决办法

1. Rosetta 2未安装或未正确启用

M1芯片默认预装Rosetta 2,但部分M2机型的新系统可能没有自动安装。amd64架构的容器依赖Rosetta 2做指令转译,缺失的话就会出现二进制文件无法执行的错误。

  • 终端执行softwareupdate --install-rosetta --agree-to-license完成安装,按提示确认即可。
  • 安装后重启Docker,再尝试启动容器。

2. Docker的Rosetta转译开关未开启

Docker Desktop针对Apple Silicon有专门的Rosetta转译配置,M2上如果没打开这个开关,amd64镜像无法被正确转译。

  • 打开Docker Desktop偏好设置 → 进入「Features in development」页面 → 勾选「use Rosetta for x86/amd64 emulation on Apple Silicon」。
  • 应用设置后重启Docker。

3. MySQL 5.7旧版amd64镜像的兼容性问题

MySQL 5.7的早期amd64镜像可能和M2的Rosetta 2转译层存在兼容性冲突,M1的转译环境和M2有细微差异(比如内核优化、转译逻辑),导致M1能跑但M2不行。

  • 尝试使用5.7分支的较新版本镜像,比如docker run --platform linux/amd64 mysql:5.7.40。
  • 或者直接去掉--platform linux/amd64参数,让Docker自动拉取适配arm64的MySQL 5.7镜像:docker run mysql:5.7(如果官方提供了arm64版本的话)。

4. Docker缓存残留导致的异常

重装Docker可能没清理干净旧的镜像缓存或配置缓存,残留的异常缓存会干扰新容器的启动。

  • 先删除旧镜像:docker rmi mysql:5.7,再重新拉取amd64版本:docker pull --platform linux/amd64 mysql:5.7。
  • 彻底清理Docker数据:打开Docker Desktop → 进入「Troubleshoot」页面 → 点击「Clean / Purge data」,完成后重启Docker。

5. 系统环境变量干扰转译过程

M2系统的某些环境变量可能强制Docker使用arm64架构,导致amd64镜像的转译失效。

  • 终端执行echo $DOCKER_DEFAULT_PLATFORM,如果输出是linux/arm64,可以暂时取消这个变量设置(比如执行unset DOCKER_DEFAULT_PLATFORM),再尝试启动容器。

内容的提问来源于stack exchange,提问作者Qwertie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 00:05:10