濮阳杆衣贸易有限公司

主頁 > 知識庫 > 如何恢復(fù)docker容器數(shù)據(jù)

如何恢復(fù)docker容器數(shù)據(jù)

熱門標(biāo)簽:怎么找到?jīng)]有地圖標(biāo)注的店 河南防封號電銷機器人是什么 10086外包用的什么外呼系統(tǒng) 麗江真人語音電話外呼系統(tǒng) 宿城區(qū)電話機器人找哪家 上海申請高400開頭的電話 打400電話怎么辦理收費 400電話辦理介紹信 福州企業(yè)電銷機器人排名

項目測試環(huán)境數(shù)據(jù)庫數(shù)據(jù)丟失,特此記錄一下。當(dāng)時是用 docker 安裝的,以為臨時使用一段時間,也沒有持久化。突然前天 docker 日志滿了,同事想著去清理日志,使用了如下命令:

docker system prune

結(jié)果當(dāng)時 MySQL 容器當(dāng)時正常處于停止?fàn)顟B(tài),結(jié)果容器一下子就被干掉了,我們備份的數(shù)據(jù)還是三月份的,這下糟糕了。然后各種研究開始恢復(fù)。

然后我就去官方文檔去研究這個命令是干什么的,上面用到的 docker system prune 意思是:

Remove all unused containers, networks, images (both dangling and unreferenced), and optionally, volumes.

刪除所有未使用的容器、網(wǎng)絡(luò)、圖像(懸空和未引用的圖像)以及卷(可選)。

By default, volumes are not removed to prevent important data from being deleted if there is currently no container using the volume. Use the --volumes flag when running the command to prune volumes as well:

默認情況下,如果當(dāng)前沒有使用卷的容器,則不會刪除卷以防止刪除重要數(shù)據(jù)。運行命令時也可以使用 --volumes 標(biāo)志來修剪卷:

這下心放下了一半,還好數(shù)據(jù)卷沒有被刪除,我們可以利用數(shù)據(jù)卷可以進行恢復(fù)數(shù)據(jù)。接下來記錄下我的恢復(fù)方案吧。

1.查找數(shù)據(jù)卷位置

數(shù)據(jù)卷目錄在 /var/lib/docker/volumes 下,每個容器都會在該目錄下有一個文件夾,如果容器還存在的話,我們可以使用 docker inspect 容器ID 去查看 數(shù)據(jù)卷位置,這下容器被刪除了,可怎么辦,只能挨個去找了,一般 MySQL 容器數(shù)據(jù)卷目錄下會有一個 _data 目錄,該目錄下會顯示你每個數(shù)據(jù)庫的文件夾,最終找到了。

這個 cxhello 就是我們的測試庫,現(xiàn)在我們就可以恢復(fù)數(shù)據(jù)了。

2.恢復(fù)

使用 docker volume create 數(shù)據(jù)卷名字 命令新建一個數(shù)據(jù)卷,docker volume ls 查看數(shù)據(jù)卷列表

注意:使用數(shù)據(jù)卷進行掛載的時候,數(shù)據(jù)卷必須是一個空的目錄,也就是說不能有任何數(shù)據(jù)。

然后創(chuàng)建容器

docker run -d -p 3309:3306 -v mysqldata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name huifu mysql:5.7

在恢復(fù)數(shù)據(jù)之前需要把剛剛建立的數(shù)據(jù)卷里面關(guān)聯(lián)的內(nèi)容刪除掉,然后把之前的數(shù)據(jù)卷內(nèi)容復(fù)制到現(xiàn)在的數(shù)據(jù)卷進行數(shù)據(jù)恢復(fù)。

cd /var/lib/docker/volumes/mysqldata/_data/
rm -f *
rm -f -R *

復(fù)制內(nèi)容到數(shù)據(jù)卷

cd /var/lib/docker/volumes/1db16a9dfdf3442b117ebc2ec11df5df4db717cfd567c77fa0a49905a9652fa0/_data/
cp -R * /var/lib/docker/volumes/mysqldata/_data/

至此數(shù)據(jù)庫數(shù)據(jù)恢復(fù)完成,進入恢復(fù)的容器查看

參考文章

https://docs.docker.com/engine/reference/commandline/system_prune/

https://www.cnblogs.com/cheyunhua/p/13433400.html

到此這篇關(guān)于如何恢復(fù)docker容器數(shù)據(jù) 的文章就介紹到這了,更多相關(guān)docker容器數(shù)據(jù)恢復(fù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

標(biāo)簽:隴南 面試通知 雞西 連云港 運城 朝陽 遵義 荊門

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《如何恢復(fù)docker容器數(shù)據(jù)》,本文關(guān)鍵詞  如何,恢復(fù),docker,容器,數(shù)據(jù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《如何恢復(fù)docker容器數(shù)據(jù)》相關(guān)的同類信息!
  • 本頁收集關(guān)于如何恢復(fù)docker容器數(shù)據(jù)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    蓬溪县| 壶关县| 潼关县| 报价| 定日县| 哈密市| 湘阴县| 如皋市| 文山县| 乳山市| 类乌齐县| 兴义市| 叶城县| 宜都市| 潜江市| 江川县| 垫江县| 台北县| 石林| 包头市| 门源| 青浦区| 河西区| 东港市| 昌吉市| 吉首市| 济南市| 淮阳县| 肃宁县| 丹寨县| 法库县| 翁源县| 建德市| 佛学| 子长县| 卫辉市| 长沙县| 茌平县| 县级市| 开江县| 景宁|