Apple M2 + Docker + MySQL 轻量配置全教程

从零开始到运行 MySQL 的全套"保姆级"教程,针对 Apple M2 芯片和 Docker 轻量配置优化,按照步骤就能直接运行。


Apple M2 + Docker + MySQL 轻量配置全教程


1️⃣ 安装 Docker Desktop for Mac(Apple Silicon)

  1. 打开浏览器,访问 Docker 官方网站下载页面:
    https://www.docker.com/products/docker-desktop/

  2. 下载 Mac (Apple chip) 版本(注意选择 Apple Silicon / arm64 版本)。

  3. 打开下载的 .dmg 文件,拖动 DockerApplications 文件夹。

  4. 启动 Docker Desktop,首次启动可能提示需要系统权限,允许即可。

  5. 验证安装:

    docker --version
    docker info

你应该能看到 Docker 版本信息和系统信息。

💡 注意:M2 芯片是 ARM 架构,后续拉取 MySQL 镜像时需要选择官方支持 arm64 的版本(官方镜像已支持)。


2️⃣ 创建本地数据目录

为了持久化数据库数据(容器删除也不丢失):

复制代码
mkdir -p ~/docker/mysql_data

~/docker/mysql_data 是数据库文件存储目录,可自定义路径,但建议放在用户目录下。


3️⃣ 拉取 MySQL 镜像(arm64 版本)

复制代码
docker pull mysql:8.0
  • 8.0 是 MySQL 官方最新版,开发和测试推荐

  • 官方镜像已兼容 ARM 架构,无需额外设置


4️⃣ 启动 MySQL 容器(轻量优化版)

复制代码
docker run -d \
  --name my-mysql \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -e MYSQL_DATABASE=dev_db \
  -e MYSQL_USER=dev \
  -e MYSQL_PASSWORD=dev123 \
  -p 3306:3306 \
  -v ~/docker/mysql_data:/var/lib/mysql \
  --memory="1g" \
  --cpus="1.0" \
  mysql:8.0 \
  --default-authentication-plugin=mysql_native_password

参数说明

参数 含义
--name my-mysql 容器名称
-e MYSQL_ROOT_PASSWORD=123456 root 密码
-e MYSQL_DATABASE=dev_db 启动时创建默认数据库
-e MYSQL_USER=dev / -e MYSQL_PASSWORD=dev123 创建普通开发用户
-p 3306:3306 映射本机端口,可用本地客户端访问
-v ~/docker/mysql_data:/var/lib/mysql 数据持久化
--memory="1g" 限制容器内存,轻量运行
--cpus="1.0" 限制 CPU 占用,保证系统不卡顿
--default-authentication-plugin=mysql_native_password 避免客户端兼容性问题

这样配置占用 1 核 CPU + 1GB 内存,非常轻量,适合本地开发。


5️⃣ 验证容器是否运行

复制代码
docker ps

你应该看到:

复制代码
CONTAINER ID   IMAGE      COMMAND                  ...   PORTS
xxxxxx         mysql:8.0 "docker-entrypoint..." ...  0.0.0.0:3306->3306/tcp

6️⃣ 连接 MySQL

6.1 命令行连接

复制代码
docker exec -it my-mysql mysql -uroot -p
# 输入密码:123456

6.2 本地客户端连接

  • Host: 127.0.0.1

  • Port: 3306

  • User: dev

  • Password: dev123

  • Database: dev_db

可以使用 Navicat、DBeaver、DataGrip 等工具。


7️⃣ 停止和启动容器

复制代码
# 停止
docker stop my-mysql

# 启动
docker start my-mysql

数据仍然保存在 ~/docker/mysql_data,不会丢失。


8️⃣ 删除容器(数据不丢失)

复制代码
docker rm -f my-mysql

数据在 ~/docker/mysql_data 中仍然存在,可重新创建容器挂载使用。


9️⃣ 高级优化建议(轻量开发)

  1. 限制资源

    • --memory=1g + --cpus=1.0 已保证 MySQL 对系统影响最小。
  2. 持久化数据

    • 挂载 ~/docker/mysql_data,保证容器删除或重建数据不丢失。
  3. 减少日志占用

    • 开发环境无需慢查询日志或二进制日志,可以通过容器参数或 MySQL 配置关闭,减少磁盘占用。
  4. 多版本测试

    • 可同时启动多个容器,不同端口,不同版本,方便版本兼容测试。

10️⃣ 总结

  • 全程适配 Apple M2 + ARM 架构

  • 轻量资源:1 核 CPU + 1GB 内存

  • 数据持久化,不污染系统

  • 容器化易于管理,多版本测试灵活

开发、学习、调试都非常适合,也可以快速迁移到远程服务器或生产环境。


相关推荐
全栈老石3 小时前
拆解低代码引擎核心:元数据驱动的"万能表"架构
数据库·低代码
fetasty5 小时前
rustfs加picgo图床搭建
docker
蝎子莱莱爱打怪20 小时前
GitLab CI/CD + Docker Registry + K8s 部署完整实战指南
后端·docker·kubernetes
倔强的石头_1 天前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
小p2 天前
docker学习7:docker 容器的通信方式
docker
小p2 天前
docker学习5:提升Dockerfile水平的5个技巧
docker
小p2 天前
docker学习3:docker是怎么实现的?
docker
jiayou642 天前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
于眠牧北2 天前
MySQL的锁类型,表锁,行锁,MVCC中所使用的临键锁
mysql
李广坤3 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库