准备工作
1.安装docker环境
2.下载相应mysql docker 镜像
3.创建宿主机挂载data文件、config文件
一、下载docker镜像
我们使用的是官方redis 镜像mysql:5.7
执行拉去镜像命令
docker pull mysql:5.7
这里我已经提前下载过该镜像了。
二、创建挂载宿主机挂载文件目录
根据自己的操作习惯创建相应的data、config文件
[root@iZbp18fygyh37em2nkknokZ ~]# cd /software/docker/
[root@iZbp18fygyh37em2nkknokZ docker]# ls
[root@iZbp18fygyh37em2nkknokZ docker]# mkdir -p mysql/data
[root@iZbp18fygyh37em2nkknokZ docker]# mkdir -p mysql/config
[root@iZbp18fygyh37em2nkknokZ docker]# ls
mysql
[root@iZbp18fygyh37em2nkknokZ docker]# cd mysql/
[root@iZbp18fygyh37em2nkknokZ redis-test-dt]# ls
config data
[root@iZbp18fygyh37em2nkknokZ redis-test-dt]#
三、启动容器
[root@iZbp18fygyh37em2nkknokZ mysql]# docker run -itd --name mysql-test-p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
参数解释:
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-p: 端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-v :映射数据目录
-e MYSQL_ROOT_PASSWORD:设置MySQL root密码为123456
四、拷贝容器中的数据到创建好的宿主机目录中
[root@iZbp18fygyh37em2nkknokZ mysql]# docker cp mysq-test:/var/lib/mysql /software/docker/mysql/data/mysql
数据备份,就算删除容器重建,只要挂载该文件,重建的容器数据还是删除前的数据。
[root@iZbp18fygyh37em2nkknokZ mysql]# docker cp mysq-test:/etc/mysql/mysql.conf.d/mysqld.cnf /software/docker/mysql/config/mysqld.cnf
这里是为了修改同步容器中mysql 的时间为北京时间。
设置mysql的时区为东八区
五、删除原容器重新构建
[root@iZbp18fygyh37em2nkknokZ mysql]# docker rm -f mysql-test
mysql-test
[root@iZbp18fygyh37em2nkknokZ mysql]# docker run -itd --name mysql-test -p 3306:3306 -v /software/docker/mysql/data/mysql:/var/lib/mysql -v /software/docker/mysql/config/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
4beb59fe117148e08b6d39136fbc07835210e2287d0db0e4e62e6e3e93920cda
[root@iZbp18fygyh37em2nkknokZ mysql]# docker ps
启动成功,后打开数据库,验证数据库原数据是否存在;
验证时间是否正确