上一篇:Docker的那些事兒—Docker數(shù)據(jù)卷容器(31)
數(shù)據(jù)備份一直是運維中最最重要的一件事,Docker中的卷數(shù)據(jù)備份也同等重要腌紧!下面就來研究下Docker中的卷數(shù)據(jù)備份步做。
首先碉克,我們運行一個mysql的數(shù)據(jù)庫容器:
docker run -itd --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 -v mysql_data:/var/lib/mysql mysql
下面進(jìn)入mysql尖滚,由于容器啟動時作了端口映射晤锥,所以宿主機安裝了mysql客戶端的話就可以直接連接mysql數(shù)據(jù)庫了(當(dāng)然了键袱,也可以進(jìn)入容器直接連接mysql操作)再菊。如果未安裝的話:apt-get install -y mysql-client-core-5.7
連接mysql數(shù)據(jù)庫,創(chuàng)建一個docker_data的數(shù)據(jù)庫宏邮,并在其中創(chuàng)建一個表table1泽示。
我們在數(shù)據(jù)庫中新建的庫及表都存在
下面開始備份mysql數(shù)據(jù)庫數(shù)據(jù):
docker run -it --rm --volumes-from mysql -v$(pwd):/backup alpine tar zcvf /backup/backup.tar.gz /var/lib/mysql
其中:
--rm 備份后自動刪除容器
--volumes-from 加載上述mysql容器
-v 掛載當(dāng)前目錄到新容器的/backup目錄下
tar zcvf /backup/backup.tar.gz /var/lib/mysql 在新容器內(nèi)執(zhí)行tar命令將mysql容器的/var/lib/mysql打包成backup.tar.gz放到當(dāng)前目錄下
當(dāng)前目錄下存在backup.tar.gz,且壓縮包里存在新增的數(shù)據(jù)蜜氨。下一節(jié)我們將使用這個備份包去恢復(fù)mysql容器卷數(shù)據(jù)械筛。