看前须知
这里使用Mac下的OrbStack代替Docker,都是命令行操作,除了可能出现的UI不同外没有任何区别。
拉取镜像
由于是Mac环境,所以优先使用arm64结构,关于是否支持所需架构,可以在Docker Hub上查,一般支持的都会写明。
这里搜索MySQL,进入官方镜像就可以在Overview的Quick reference (cont.)中看到支持arm架构。
点进arm64v8,在Tags中搜索要安装的版本即可,这里选用8.4.2(LTS版本),如果你使用的版本和我一样,直接复制下面的指令即可。
docker pull arm64v8/mysql:8.4.2
部署
这里使用数据卷进行持久化,在其他教程中也有使用绑定挂载进行持久化的。简单说下两者的区别:
- 数据卷不需要关心存储位置,性能优于绑定挂载,可以使用Docker命令进行创建删除和备份
- 绑定挂载可以指定在宿主机上存储的位置,便于直接访问和编辑文件,但是由于直接依赖于宿主机路径,在不同环境可能有路径不一致问题。
通过下面的命令可以创建数据卷,一共需要创建三个,分别对应MySQL的数据、配置和日志文件,名称可以自定义,这里我统一使用 mysql-xxx
。
docker volume create 数据卷名 // 创建数据卷docker volume create mysql-data
docker volume create mysql-log
docker volume create mysql-config
最后直接创建容器即可,可以修改 MYSQL_ROOT_PASSWORD
参数来设置密码。
如果你使用的是其他版本,记得修改 arm64v8/mysql:8.4.2
为你的版本。
docker run --name mysql \-e MYSQL_ROOT_PASSWORD=root \-v mysql-data:/var/lib/mysql \-v mysql-log:/var/log/mysql \-v mysql-config:/etc/mysql \-p 3306:3306 \-d arm64v8/mysql:8.4.2