You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

Mac M4芯片下Docker无法识别MySQL 8镜像,容器启动失败求助

问题描述

我正在为Tomcat Server/Spring Boot项目部署三个容器,其中两个使用mysql 8.0.33和mysql 5.7已正常运行。现尝试通过以下docker-compose.yml部署第三个基于mysql 8的容器:

db:
  image: mysql:8
  platform: linux/x86_64/v8
  environment:
    - MYSQL_ROOT_PASSWORD=*****
  volumes:
    - mysql_es:/var/lib/mysql
  ports:
    - "3308:3306"

volumes:
  mysql_es:

但执行compose时出现如下错误:

[+] Running 1/1
 ✔ db Pulled                                                                                                                                                6.7s
[+] Running 0/0
 ⠋ Container blitz-db-1  Creating                                                                                                                           0.0s
Error response from daemon: No such image: mysql:8

Docker Desktop中可看到mysql 8镜像已生成,删除所有MySQL镜像后重新执行compose仍无法启动容器,设备为Mac M4芯片。

解决思路
  • 指定精确镜像标签:将image: mysql:8改为image: mysql:8.0.33(和已正常运行的8.x镜像版本一致),避免模糊标签导致的架构匹配歧义。M4为arm64架构,模糊标签可能拉取到与platform: linux/x86_64/v8不兼容的镜像。
  • 手动拉取指定架构镜像:执行命令docker pull mysql:8 --platform linux/x86_64/v8,确认拉取完成后再运行docker-compose up -d,绕开compose拉取时的缓存或架构识别问题。
  • 检查镜像实际架构:执行docker image inspect mysql:8,查看Architecture字段是否为amd64(对应linux/x86_64),如果是arm64,说明拉取的镜像架构与compose配置不匹配,需重新拉取指定架构版本。
  • 清理Docker缓存:执行docker system prune -a,清除所有未使用的镜像、容器、卷等无效资源,再重新拉取镜像并启动compose。
  • 验证compose配置语法:执行docker-compose config命令,检查配置文件是否存在缩进或格式错误。

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

火山引擎 最新活动