Docker備份卷,即將Docker容器內(nèi)的數(shù)據(jù)備份到本地宿主機上的文件夾,是一種常用的數(shù)據(jù)備份方式。通過備份卷,可以在容器出現(xiàn)問題時及時恢復(fù)數(shù)據(jù)。
docker run -v 容器內(nèi)數(shù)據(jù)目錄:宿主機數(shù)據(jù)目錄 --name 容器名稱 鏡像名稱
如上所示,運行Docker容器時需要設(shè)置數(shù)據(jù)卷,其中“容器內(nèi)數(shù)據(jù)目錄”指的是容器內(nèi)的數(shù)據(jù)所在目錄,“宿主機數(shù)據(jù)目錄”指的是本地宿主機上的文件夾。
當(dāng)容器內(nèi)的數(shù)據(jù)發(fā)生改變時,僅需將宿主機文件夾備份即可,備份命令如下:
docker run --rm --volumes-from 容器名稱 -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar 容器內(nèi)數(shù)據(jù)目錄
“--volumes-from”選項表示使用指定容器掛載的所有數(shù)據(jù)卷,“$(pwd)”表示當(dāng)前目錄,執(zhí)行此命令后,容器內(nèi)數(shù)據(jù)目錄中的所有文件都將被打包到宿主機上的backup.tar文件中。
在恢復(fù)數(shù)據(jù)時,先運行一個新容器,并在其中掛載備份卷,然后將備份文件解壓到容器內(nèi)的數(shù)據(jù)目錄中即可,命令如下:
docker run --rm --volumes-from 容器名稱 -v $(pwd):/backup ubuntu bash -c "tar xvf /backup/backup.tar -C 容器內(nèi)數(shù)據(jù)目錄 --strip 1"
通過Docker備份卷可以輕松備份和恢復(fù)容器內(nèi)的數(shù)據(jù),讓數(shù)據(jù)更加安全可靠。