实验要求

使用容器运行mysql:5.6版本,连接到数据库中做数据测试修改,使数据能够持久保持。
然后删除5.6版本容器,基于之前的数据,再创建mysql:5.7版本,并且使用之前5.6版本留下的数据

mysql:5.6操作

创建mysql:5.6容器

[root@servera ~]# docker run --name mysql-5.6 -p 3307:3306 -v /mysql/data/:/var/lib/mysql/   -e MYSQL_ROOT_PASSWORD=123   -d mysql:5.6
#-v 为指定映射的目录 , 本机:容器
#-e 为指定数据库密码

查看是否自动创建映射目录

[root@servera ~]# cd /mysql/data/
[root@servera data]# ll

容器检查

[root@servera data]# docker exec -it mysql-5.6 bash
root@9af4961ea152:/# cd /var/lib/
apt/           misc/          mysql-files/   pam/
dpkg/          mysql/         mysql-keyring/ systemd/
root@9af4961ea152:/# cd /var/lib/mysql
mysql/         mysql-files/   mysql-keyring/
root@9af4961ea152:/# cd /var/lib/mysql
root@9af4961ea152:/var/lib/mysql# ls
auto.cnf  ib_logfile0  ib_logfile1  ibdata1  mysql  performance_schema

进入数据库,创建测试

root@9af4961ea152:/var/lib/mysql# mysql -uroot -p123
mysql> create database test;
Query OK, 1 row affected (0.00 sec)
mysql> use test;
mysql> create table stu(id int(10),name varchar(20),age int(10));
Query OK, 0 rows affected (0.00 sec)
mysql> insert into stu values(1,"zhangsan",18);
Query OK, 1 row affected (0.00 sec)

删除容器

[root@servera data]# docker rm -f   mysql-5.6
mysql-5.6
#映射的数据还在
[root@servera data]# ls
auto.cnf  ibdata1  ib_logfile0  ib_logfile1  mysql  performance_schema  test

检查映射目录

#发现容器映射目录多了个test库
root@9af4961ea152:/var/lib/mysql# ls
auto.cnf  ib_logfile0  ib_logfile1  ibdata1  mysql  performance_schema  test
#这里也多了一个stu
[root@servera ~]# cd /mysql/data/
[root@servera data]# ls
auto.cnf  ibdata1  ib_logfile0  ib_logfile1  mysql  performance_schema  test
[root@servera data]# cd test/
[root@servera test]# ls
db.opt  stu.frm  stu.ibd

mysql:5.7操作

创建mysql:5.7容器

运行5.7的容器,映射文件相同

[root@servera data]# docker run --name mysql-5.7 -p 3307:3306 -v /mysql/data/:/var/lib/mysql/   -e MYSQL_ROOT_PASSWORD=123   -d  --privileged=true mysql:5.7
# --privileged=true 此选项提供了对主机系统资源更深层次的访问权限

检查文件

[root@servera data]# docker exec -it mysql-5.7 bash
bash-4.2# cd /var/lib/mysql
bash-4.2# ls
auto.cnf         client-key.pem  ibtmp1              private_key.pem  test
ca-key.pem       ib_logfile0     mysql               public_key.pem
ca.pem           ib_logfile1     mysql.sock          server-cert.pem
client-cert.pem  ibdata1         performance_schema  server-key.pem

登录数据库检查

与之前插入的数据相同

bash-4.2# mysql -uroot -p123
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

mysql> select * from stu;
+------+----------+------+
| id   | name     | age  |
+------+----------+------+
|    1 | zhangsan |   18 |
+------+----------+------+
1 row in set (0.00 sec)

插入新数据

尝试插入数据,功能也不影响

mysql> insert into stu values(2,"lisi",20);
Query OK, 1 row affected (0.00 sec)

mysql> select * from stu;
+------+----------+------+
| id   | name     | age  |
+------+----------+------+
|    1 | zhangsan |   18 |
|    2 | lisi     |   20 |
+------+----------+------+
2 rows in set (0.00 sec)