原創文章,歡迎轉載。轉載請註明:轉載自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