解決docker重啟redis,mysql數(shù)據(jù)丟失的問題
官方文檔:
所以 mysql應(yīng)如下啟動(dò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
多看官方文檔,里面有詳細(xì)的說明
補(bǔ)充知識(shí):docker 掛載進(jìn)容器的文件修改后沒有改變需要重啟
今天發(fā)現(xiàn)一個(gè)很奇怪的現(xiàn)象,就是我在宿主機(jī)上的文件掛載進(jìn)docker后,主機(jī)上刪除了文件,并且重新上傳重命名為相同名字的文件,容器中的沒有同步.
先來說下Linux,Linux存儲(chǔ)是分為iNode和block的,iNode存儲(chǔ)的是文件的屬行信息,例如大小,在磁盤的什么位置,block是4k大小的一個(gè)塊,存儲(chǔ)的是文件的實(shí)際信息,不足4k大小的文件也會(huì)占用掉4k的空間.
了解了上面,再來說docker,掛載進(jìn)docker的文件,實(shí)際上是docker記住了一個(gè)iNode,他可以通過這個(gè)iNode找到block,也就是實(shí)際的文件信息.如果是用 > 追加重定向?qū)懭胛募?是可以同步到docker的,但是如果是rm 重命名的,文件的iNode就改變了,但是docker中的iNode還是指向了之前的磁盤位置,所以文件沒有改變.
rm 原理:rm只是刪除了iNode,沒有了iNode通過正常方式,找不到磁盤上的block,看起來就是刪除了,但是文件信息還在,文件信息會(huì)在下次寫入到這里的時(shí)候覆蓋掉,所以數(shù)據(jù)被刪除還有恢復(fù)的方法,但是,如果刪除的時(shí)候文件是打開的,文件也不會(huì)被刪除
同樣的還有vim ,vim 文件的時(shí)候,是基于現(xiàn)有的文件copy了一份,同級(jí)目錄下會(huì)有一個(gè) .開頭swp結(jié)尾的文件,當(dāng)你保存退出的時(shí)候,vim 會(huì)刪掉源文件,將這個(gè)文件重命名為源文件的名字,iNode自然也就改變了.
以上這篇解決docker重啟redis,mysql數(shù)據(jù)丟失的問題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Docker下多容器搭建 lamp的詳細(xì)過程(httpd+mysql+php+redis)
- docker安裝mysql、redis鏡像方式
- Docker安裝MySQL和Redis的方法步驟
- Docker 部署Mysql 服務(wù)和Redis 服務(wù)的方法
- Docker安裝Tomcat、MySQL和Redis的步驟詳解
- Docker部署Django+Mysql+Redis+Gunicorn+Nginx的實(shí)現(xiàn)
- docker搭建php+nginx+swoole+mysql+redis環(huán)境的方法
- Docker安裝常用組件(mysql,redis)的方法
- Docker + Nodejs + Kafka + Redis + MySQL搭建簡(jiǎn)單秒殺環(huán)境
- Docker一鍵部署MySQL和Redis數(shù)據(jù)庫的實(shí)現(xiàn)
相關(guān)文章
SQL?Server?簡(jiǎn)介與?Docker?Compose?部署SQL?Server?容器
SQL?Server?是一個(gè)功能強(qiáng)大的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),適用于各種規(guī)模的應(yīng)用程序和數(shù)據(jù)存儲(chǔ)需求,在本文中,我將簡(jiǎn)要介紹?SQL?Server?的基本概念,并詳細(xì)闡述如何使用?Docker?Compose?部署?SQL?Server?容器,感興趣的朋友跟隨小編一起看看吧2023-10-10Docker Stack部署Java Web項(xiàng)目的實(shí)現(xiàn)
本文主要介紹了Docker Stack部署Java Web項(xiàng)目的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06使用docker創(chuàng)建集成服務(wù)lnmp環(huán)境
本篇文章主要介紹了使用docker創(chuàng)建集成服務(wù)lnmp環(huán)境,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04