部署MySQL并挂载数据卷
1.拉取镜像
docker pull mysql:8.0.37
2.运行镜像并挂在数据卷
docker run -d -p 9306:3306 --privileged=true -v /dockervolunm/mysql/log:/var/log/mysql -v /dockervolunm/mysql/data:/var/lib/mysql -v /dockervolunm/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=****** --name mysql mysql:8.0.37
#指令解释
docker run -d -p 9306:3306 --privileged=true #创建并启动mysql容器,映射到宿主机的9306端口,并给予容器额外的权限
-v /dockervolunm/mysql/log:/var/log/mysql #将宿主机的/dockervolunm/mysql/log目录挂载到容器内的/var/log/mysql目录
-v /dockervolunm/mysql/data:/var/lib/mysql #将宿主机的/dockervolunm/mysql/data目录挂载到容器内的/var/lib/mysql目录
-v /dockervolunm/mysql/conf:/etc/mysql/conf.d #将宿主机的/dockervolunm/mysql/conf目录挂载到容器内的/etc/mysql/conf.d目录
-e MYSQL_ROOT_PASSWORD=******--name mysql mysql:8.0.37 #置了环境变量MYSQL_ROOT_PASSWORD,其值为123456,MySQL镜像会读取这个环境变量,并将其作为root用户的密码。--name mysql: 这个选项为容器指定了一个名称,即mysql。这样,你就可以通过名称来引用容器了,而不是使用容器ID。
3.在数据库中创建几个表和记录
4.删除容器再重启验证数据是否会丢失
#删除容器
docker rm -f mysql
#重启
docker run -d -p 9306:3306 --privileged=true -v /dockervolunm/mysql/log:/var/log/mysql -v /dockervolunm/mysql/data:/var/lib/mysql -v /dockervolunm/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=****** --name mysql mysql:8.0.37
验证结果为数据没有丢失