Docker搭建MySQL并挂载数据的全过程
时间:2022-05-09 09:40:10|栏目:Mysql|点击: 次
记录 Docker 搭建 MySQL 并挂载数据过程,搭建过程参考自 Docker Hub 。
一、Docker搭建MySQL并挂载数据
1、首先安装好 Docker,不知道怎么安装的可以看下 CentOS7安装Docker初体验 。
2、下载 MySQL5.7 镜像。
docker pull mysql:5.7
3、创建容器并挂载数据。
docker run -d --restart=always --name mysql \ -v /itwxe/dockerData/mysql/data:/var/lib/mysql \ -v /itwxe/dockerData/mysql/conf:/etc/mysql \ -v /itwxe/dockerData/mysql/log:/var/log/mysql \ -p 3306:3306 \ -e TZ=Asia/Shanghai \ -e MYSQL_ROOT_PASSWORD=123456 \ mysql:5.7 \ --character-set-server=utf8mb4 \ --collation-server=utf8mb4_general_ci
参数说明:
-v /itwxe/dockerData/mysql/data:/var/lib/mysql:将数据文件夹挂载到主机 -v /itwxe/dockerData/mysql/conf:/etc/mysql:将配置文件夹挂在到主机,可以在宿主机放一份自定义 my.cnf文件,那么容器就会按自定义配置启动 -v /itwxe/dockerData/mysql/log:/var/log/mysql:将日志文件夹挂载到主机 -p 3306:3306:将容器的3306端口映射到主机的3306端口 -e MYSQL_ROOT_PASSWORD=123456:初始化123456用户的密码 --character-set-server=utf8mb4:设置字符集 --collation-server=utf8mb4_general_ci:排序方式
4、进入 MySQL 容器内部。
docker exec -it mysql /bin/bash
5、登录 MySQL。
mysql -uroot -p123456
6、查看字符集是否生效。
show variables like 'character_set_%';
二、挂载是否生效
1、上传备份 sql 到宿主机,复制宿主机备份 sql 到容器。
docker cp /itwxe/dockerData/sunny.sql mysql:/
2、进入 mysql 容器内部,导入sql。
docker exec -it mysql /bin/bash mysql -uroot -p123456 create database sunny; use sunny; source /sunny.sql;
3、数据导入成功可以查询后,删除容器,并重新用命令创建容器,查看数据存在。
docker stop mysql && docker rm mysql
使用上面的命令重新创建容器,查看数据是否正常,可以看到数据正常挂载查询,此处演示的数据正常挂载保存宿主机。
其他
1.可以启动多个MySQL服务,因为我们启动的是容器,容器可以有多个,只要容器名字映射段端口不一样就可以了,例如:
$ sudo docker run --name dbdb -e MYSQL_ROOT_PASSWORD=123456 -p 6666:3306 -d mysql
2.查看所有容器(启动状态或者关闭状态)
$ sudo docker ps -a
3.启动和关闭容器
启动命令:
$ sudo docker start pwc-mysql //通过指定容器名字 $ sudo docker start 73f8811f669e //通过指定容器ID
关闭命令:
$ sudo docker stop pwc-mysql //通过指定容器名字 $ sudo docker stop 73f8811f669e //通过指定容器ID