原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!
原文连接地址:『中级篇』数据持久化之Data Volume(34)mysql
有些容器会自动产生一些数据,为了避免让数据随着container的消失而消失,保证数据的安全性。例如:数据库容器,数据表的表会产生一些数据,若是我吧container给删除,数据就丢失。为了保证数据不丢失,有了Volume的存在。
源码github.com/limingios/d… No.3 方便学习数据持久化存储ios
从本次开始我开始用第三方SecureCRT了再也不用cmd了git
#镜像加速器
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://b81aace9.m.daocloud.io
#建立一个mysql容器,MYSQL_ALLOW_EMPTY_PASSWORD使用空密码
sudo docker run -d --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql
sudo docker ps
复制代码
#查看volume
sudo docker volume ls
#容器的volume的Id
sudo docker volume inspect 47d003ff423ad06560cdc6e7892d420e7555753f447855fa1fd5ace8a07ab597
复制代码
#建立一个mysql2,查看对应的volume
sudo docker run -d --name mysql2 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql
sudo docker volume ls
sudo docker volume inspect 47d003ff423ad06560cdc6e7892d420e7555753f447855fa1fd5ace8a07ab597
复制代码
sudo docker ps
sudo docker stop mysql1 mysql2
sudo docker rm mysql1 mysql2
sudo docker volume ls
sudo docker ps
复制代码
sudo docker volume ls
sudo docker volume rm 06bb873ed273c2957b3798b14ed5b90d2d15af3b921c2d6dd09fd25920eba75f
sudo docker volume rm 47d003ff423ad06560cdc6e7892d420e7555753f447855fa1fd5ace8a07ab597
sudo docker volume ls
复制代码
#volume的别名是mysql,只向的路径是/var/lib/mysql
sudo docker run -d -v mysql:/var/lib/mysql --name mysql2 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql
sudo docker volume ls
复制代码
mysql容器放入数据,而后删除容器,在建立一个挂在容器,看看数据存在不存在。github
sudo docker exec -it mysql2 /bin/bash
mysql -u root
show databases;
create database docker;
show databases;
exit;
exit
sudo docker ps
sudo docker volume ls
复制代码
sudo docker rm -f mysql2
sudo docker volume ls
#挂在以前的mysql的volme
sudo docker run -d -v mysql:/var/lib/mysql --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql
sudo docker ps
sudo docker exec -it mysql1 /bin/sh
mysql -u root
#查看mysql数据库中的docker是否存在,结果存在
show databases;
复制代码
PS:这个是数据持久化的一种方式经过volume的方式。sql