人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

解決docker重啟redis,mysql數(shù)據(jù)丟失的問題

發(fā)布日期:2022-01-02 07:02 | 文章來源:CSDN

官方文檔:

所以 mysql應(yīng)如下啟動:

docker run -p 3306:3306 -d -e MYSQL_ROOT_PASSWORD=密碼 -v /windows盤符/指定的文件夾路徑:/var/lib/mysql mysql:5.7

redis:

docker run -p 6379:6379 -d -v /windows盤符/指定的文件夾路徑:/data redis:5.0 redis-server --appendonly yes

多看官方文檔,里面有詳細的說明

補充知識:docker 掛載進容器的文件修改后沒有改變需要重啟

今天發(fā)現(xiàn)一個很奇怪的現(xiàn)象,就是我在宿主機上的文件掛載進docker后,主機上刪除了文件,并且重新上傳重命名為相同名字的文件,容器中的沒有同步.

先來說下Linux,Linux存儲是分為iNode和block的,iNode存儲的是文件的屬行信息,例如大小,在磁盤的什么位置,block是4k大小的一個塊,存儲的是文件的實際信息,不足4k大小的文件也會占用掉4k的空間.

了解了上面,再來說docker,掛載進docker的文件,實際上是docker記住了一個iNode,他可以通過這個iNode找到block,也就是實際的文件信息.如果是用 > 追加重定向?qū)懭胛募?是可以同步到docker的,但是如果是rm 重命名的,文件的iNode就改變了,但是docker中的iNode還是指向了之前的磁盤位置,所以文件沒有改變.

rm 原理:rm只是刪除了iNode,沒有了iNode通過正常方式,找不到磁盤上的block,看起來就是刪除了,但是文件信息還在,文件信息會在下次寫入到這里的時候覆蓋掉,所以數(shù)據(jù)被刪除還有恢復的方法,但是,如果刪除的時候文件是打開的,文件也不會被刪除

同樣的還有vim ,vim 文件的時候,是基于現(xiàn)有的文件copy了一份,同級目錄下會有一個 .開頭swp結(jié)尾的文件,當你保存退出的時候,vim 會刪掉源文件,將這個文件重命名為源文件的名字,iNode自然也就改變了.

以上這篇解決docker重啟redis,mysql數(shù)據(jù)丟失的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持本站。

版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部