docker數(shù)據(jù)持久化

默認(rèn)情況下检眯,在容器內(nèi)創(chuàng)建的所有文件都存儲在可寫容器層上。
另一個(gè)進(jìn)程很難從容器中獲取數(shù)據(jù)昆淡,而且當(dāng)容器不再存在時(shí)锰瘸,數(shù)據(jù)不會持久化。

向可寫容器層寫入數(shù)據(jù)時(shí)昂灵,需要一個(gè)存儲驅(qū)動來管理文件系統(tǒng)避凝,比如overlay2,這種方式與直接寫入主機(jī)文件系統(tǒng)的數(shù)據(jù)卷相比眨补,這種額外的抽象降低了性能管削。

docker有兩種方式,可以讓容器在主機(jī)上存儲文件撑螺,且持久化含思。
卷和綁定掛載。如果是在windows上甘晤,還可以使用命名管道含潘。如下圖所示。


image.png

其中:
volume是存儲在由docker管理的主機(jī)文件系統(tǒng)的一部分线婚。非docker進(jìn)程不應(yīng)該修改這部分文件系統(tǒng)遏弱。
volume是持久化的最佳方式,下面會解釋酌伊。
bind mount可以存儲在主機(jī)文件系統(tǒng)的任何地方腾窝。其他進(jìn)程可以修改它們。
綁定掛載的性能非常好居砖,但它們依賴于主機(jī)的文件系統(tǒng)具有特定的目錄結(jié)構(gòu)虹脯。如果正在開發(fā)新的Docker應(yīng)用程序,可以考慮使用命名卷奏候。不能使用docker命令來管理綁定掛載循集。
tmpfs掛載只存儲在主機(jī)的內(nèi)存中,并且從不寫到主機(jī)的文件系統(tǒng)中蔗草。其生命周期為容器的生命周期咒彤。

volume的一些用例
1、在多個(gè)運(yùn)行的容器之間共享數(shù)據(jù)
如果您沒有顯式地創(chuàng)建卷咒精,那么卷在第一次掛載到容器中時(shí)就會被創(chuàng)建镶柱。當(dāng)容器停止或被刪除時(shí),該卷仍然存在模叙。多個(gè)容器可以同時(shí)掛載相同的卷歇拆,可以是讀-寫或只讀。卷只有在顯式刪除時(shí)才會刪除。
2故觅、將容器運(yùn)行和主機(jī)解耦
當(dāng)Docker主機(jī)不能保證具有給定的目錄或文件結(jié)構(gòu)時(shí)厂庇。卷可以幫助您將Docker主機(jī)的配置與容器運(yùn)行時(shí)解耦。
3输吏、當(dāng)您希望在遠(yuǎn)程主機(jī)或云提供商(而不是本地)上存儲容器數(shù)據(jù)時(shí)
4权旷、當(dāng)需要將數(shù)據(jù)從一臺Docker主機(jī)備份、恢復(fù)或遷移到另一臺Docker主機(jī)時(shí)贯溅,卷是更好的選擇
可以使用該卷停止容器拄氯,然后備份該卷的目錄(例如/var/lib/docker/volumes/)。
5盗迟、當(dāng)您的應(yīng)用程序需要Docker桌面上的高性能I/O時(shí)
卷存儲在Linux虛擬機(jī)而不是主機(jī)中坤邪,這意味著讀寫具有更低的延遲和更高的吞吐量。

Bind mount的一些用例
1罚缕、從主機(jī)到容器共享配置文件
2艇纺、在Docker主機(jī)和容器上的開發(fā)環(huán)境之間共享源代碼或構(gòu)建工件
例如,您可以將一個(gè)Maven目標(biāo)/目錄掛載到一個(gè)容器中邮弹,每當(dāng)您在Docker主機(jī)上構(gòu)建Maven項(xiàng)目時(shí)黔衡,容器就會訪問重新構(gòu)建的工件。
當(dāng)Docker主機(jī)的文件或目錄結(jié)構(gòu)保證與容器需要的綁定安裝一致時(shí)腌乡。

創(chuàng)建volume掛載例子.

$ docker run -d --name devtest --mount source=myvol2,target=/app nginx:latest
當(dāng)使用docker inspect devtest 查看容器詳細(xì)信息時(shí)盟劫,可以看到如下:

"Mounts": [
    {
        "Type": "volume",
        "Name": "myvol2",
        "Source": "/var/lib/docker/volumes/myvol2/_data",
        "Destination": "/app",
        "Driver": "local",
        "Mode": "",
        "RW": true,
        "Propagation": ""
    }
],

注意,容器停止或者刪除時(shí)与纽,volume不會自動刪除侣签,需要手動刪除。

創(chuàng)建bind mount的例子急迂。

$ docker run -d  -it --name devtest --mount type=bind,source="$(pwd)"/target,target=/app nginx:latest

當(dāng)使用docker inspect devtest 查看容器詳細(xì)信息時(shí)影所,可以看到如下:

"Mounts": [
    {
        "Type": "bind",
        "Source": "/tmp/source/target",
        "Destination": "/app",
        "Mode": "",
        "RW": true,
        "Propagation": "rprivate"
    }
],

有兩種方式創(chuàng)建tmpfs掛載。

$ docker run -d  -it --name tmptest  --mount type=tmpfs,destination=/app nginx:latest```
$ docker run -d  -it --name tmptest  --tmpfs /app  nginx:latest

當(dāng)使用docker inspect tmptest 查看容器詳細(xì)信息時(shí)僚碎,可以看到如下:

"Tmpfs": {
    "/app": ""
},
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末猴娩,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子勺阐,更是在濱河造成了極大的恐慌卷中,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件渊抽,死亡現(xiàn)場離奇詭異蟆豫,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)懒闷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門十减,熙熙樓的掌柜王于貴愁眉苦臉地迎上來徙瓶,“玉大人,你說我怎么就攤上這事嫉称。” “怎么了灵疮?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵织阅,是天一觀的道長。 經(jīng)常有香客問我震捣,道長荔棉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任蒿赢,我火速辦了婚禮润樱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘羡棵。我一直安慰自己壹若,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布皂冰。 她就那樣靜靜地躺著店展,像睡著了一般。 火紅的嫁衣襯著肌膚如雪秃流。 梳的紋絲不亂的頭發(fā)上赂蕴,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天,我揣著相機(jī)與錄音舶胀,去河邊找鬼概说。 笑死,一個(gè)胖子當(dāng)著我的面吹牛嚣伐,可吹牛的內(nèi)容都是我干的糖赔。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼纤控,長吁一口氣:“原來是場噩夢啊……” “哼挂捻!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起船万,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤刻撒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后耿导,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體声怔,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年舱呻,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了醋火。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片悠汽。...
    茶點(diǎn)故事閱讀 38,605評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖芥驳,靈堂內(nèi)的尸體忽然破棺而出柿冲,到底是詐尸還是另有隱情,我是刑警寧澤兆旬,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布假抄,位于F島的核電站,受9級特大地震影響丽猬,放射性物質(zhì)發(fā)生泄漏宿饱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一脚祟、第九天 我趴在偏房一處隱蔽的房頂上張望谬以。 院中可真熱鬧,春花似錦由桌、人聲如沸为黎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽碍舍。三九已至,卻和暖如春邑雅,著一層夾襖步出監(jiān)牢的瞬間片橡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工淮野, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留捧书,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓骤星,卻偏偏與公主長得像经瓷,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子洞难,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容