Apple M2芯片Ventura系统下如何修改docker-compose.yml获取MySQL 5.6
问题分析与解决方案
环境信息
- 设备:搭载Apple Silicon M2芯片的Mac Pro
- 系统:Ventura macOS 13
- 使用的
docker-compose.yml配置:
version: '3' services: mysql: image: dtr.s-9.us/mysql:5.6 restart: always environment: MYSQL_DATABASE: 'mydb' MYSQL_ROOT_PASSWORD: 'mypassword' ports: - '3306:3306' volumes: - ./mydb_dump:/docker-entrypoint-initdb.d adminer: image: adminer restart: always ports: - 7080:8080
错误现象
一个月前执行docker-compose up可正常拉取并运行镜像,现在执行出现以下错误:
docker-compose up [+] Running 4/1 ✔ Network mydb_default Created 0.1s ✔ Container mydb-mysql-1 Created 0.0s ✔ Container mydb-adminer-1 Created 0.0s ! mysql The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested 0.0s Attaching to mydb-adminer-1, mydb-mysql-1 mydb-mysql-1 | exec /usr/local/bin/docker-entrypoint.sh: exec format error mydb-adminer-1 | [Thu Jun 8 23:38:55 2023] PHP 7.4.33 Development Server (http://[::]:8080) started mydb-mysql-1 exited with code 0 mydb-mysql-1 exited with code 1 mydb-mysql-1 exited with code 1 mydb-mysql-1 exited with code 1
用户疑问
推测问题出在image: dtr.s-9.us/mysql:5.6,因为该私有仓库已无法访问,请问这是否是问题根源?如果是,有没有其他支持Apple M2芯片的MySQL 5.6镜像仓库?(注:改为image: mysql:8可正常拉取适配M2的镜像,但需要MySQL 5.6版本)
解答
问题根源确认
是的,这就是核心问题:
- 私有仓库
dtr.s-9.us无法访问后,Docker无法拉取原本适配arm64架构的MySQL 5.6镜像;若本地有缓存镜像,大概率是amd64版本,直接运行就会出现平台不匹配的exec format error。 - 官方MySQL 5.6镜像并未提供arm64架构版本,直接使用
mysql:5.6也会拉取amd64镜像,同样触发架构兼容问题。
可行解决方案
1. 使用第三方适配arm64的MySQL 5.6镜像
可以选用社区维护的适配arm架构的MySQL 5.6镜像,修改docker-compose.yml中MySQL服务的镜像字段:
mysql: image: biarms/mysql:5.6 # 其余配置保持不变
2. 启用Docker的Rosetta模拟运行
在docker-compose.yml中为MySQL服务添加平台声明,强制使用amd64架构,依赖Mac的Rosetta 2模拟运行:
mysql: image: mysql:5.6 platform: linux/amd64 # 其余配置保持不变
这种方式无需寻找arm64镜像,但性能会有一定损耗,能满足MySQL 5.6的使用需求。
3. 自行构建arm64版MySQL 5.6镜像
如果对第三方镜像存疑,可以基于官方MySQL 5.6的Dockerfile调整构建逻辑,自行适配arm64架构:
- 下载官方MySQL 5.6的Dockerfile
- 修改基础镜像与构建步骤以适配arm架构
- 执行
docker build -t my-mysql:5.6 .构建本地镜像 - 在
docker-compose.yml中使用该本地镜像
内容的提问来源于stack exchange,提问作者user1068636
相关产品推荐
相关产品推荐

