數(shù)據(jù)共享與持久化


數(shù)據(jù)卷

是一個可提供一個或多個容器使用的特殊目錄诡挂,它繞過 UFS,可以提供很多有用的特性

  • 可以在容器見共享和重用
  • 修改立即生效
  • 更新不影響鏡像
  • 默認一致存在半火,即使容器被刪除

注意:數(shù)據(jù)卷的使用,類似 Linux 下對目錄或文件進行 mount,鏡像中的被指定為掛載點的目錄中的文件會隱藏掉方库,能顯示看的是掛載的數(shù)據(jù)卷
選擇 -v 還是 --mount 參數(shù):Docker 新用戶應該選擇 --mount 參數(shù),經(jīng)驗豐富的 Docker 使用者對 -v 或者 --volume 已經(jīng)很熟悉了障斋,但是推薦使用 --mount 參數(shù)
創(chuàng)建一個數(shù)據(jù)卷

$ docker volume create my-vol

查看所有的數(shù)據(jù)卷

$ docker volume ls
DRIVER              VOLUME NAME
local               my-vol

在主機里使用一下命令可以查看指定數(shù)據(jù)卷的信息

$ docker volume inspect my-vol
[
    {
        "CreatedAt": "2020-03-03T16:43:26+08:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/my-vol/_data",
        "Name": "my-vol",
        "Options": {},
        "Scope": "local"
    }
]

啟動一個掛載數(shù)據(jù)卷的容器纵潦,在用 docker run 命令的時候,使用 --mount 標記來將數(shù)據(jù)卷掛載到容器里垃环。在一次 docker run 中可以掛載多個數(shù)據(jù)卷邀层。下面創(chuàng)建一個名為 web 的容器,并加載一個數(shù)據(jù)卷到容器的 /webapp 目錄

$ docker run -d -p --name web --mount source=my-vol,target=/webapp training/webapp python app.py

查看數(shù)據(jù)卷的具體信息

$ docker inspect web
...
"Mounts": [
  {
    "Type": "volume",
    "Name": "my-vol",
    "Source": "/var/lib/docker/volumes/my-vol/_data",
    "Destination": "/app",
    "Driver": "local",
    "Mode": "",
    "RW": true,
    "Propagation": ""
  }
],
...

刪除數(shù)據(jù)卷

$ docker volume rm my-vol

數(shù)據(jù)卷是被設計用來持久化數(shù)據(jù)的遂庄,它的聲明周期獨立于容器寥院,Docker 不會在容器被刪除后自動刪除數(shù)據(jù)卷,并且也不存在垃圾回收這樣的機制來處理沒有任何容器引用的數(shù)據(jù)卷涛目。如果需要在刪除容器的同時移除數(shù)據(jù)卷秸谢。可以在刪除容器的時候使用 docker rm -v 這個命令霹肝。無主的數(shù)據(jù)卷可能會占據(jù)很多空間估蹄,要清理可用如下命令

$ docker volume prune

掛載主機目錄

選擇 -v 還是 --mount 參數(shù),Docker 新用戶應該選擇 --mount 參數(shù)沫换,經(jīng)驗豐富的 Docker 使用者對 -v 或者 -volume 已經(jīng)很熟悉了臭蚁,但是推薦使用 --mount 參數(shù)
掛載一個主機目錄作為數(shù)據(jù)卷,使用 --mount 標記可以指定掛載一個本地主機的目錄到容器中去

$ docker run -d -p --name web --mount type=bind,source=/src/webapp,target=/opt/webapp training/webapp python app.py

上面的命令加載主機的 /src/webapp 目錄到容器的 /opt/webapp 目錄讯赏。這個功能在進行測試的時候十分方便垮兑,比如用戶可以放置一些程序到本地目錄中,來查看容器是否正常工作待逞。本地目錄的路徑必須是絕對路徑甥角,以前使用 -v 參數(shù)時如果本地目錄不存在 Docker 會自動創(chuàng)建一個文件夾,現(xiàn)在使用 --mount 參數(shù)時如果本地目錄不存在识樱,Docker 會報錯
Docker 掛載主機目錄的默認權(quán)限是 rw嗤无,用戶也可以通過增加 readonly 指定為只讀

$ docker run -d -p --name web --mount type=bind,source=/src/webapp,target=/opt/webapp,readonly training/webapp python app.py

加了 readonly 之后,就掛載為只讀了怜庸,若在容器內(nèi) /opt/webapp 目錄新建文件当犯,會顯示如下錯誤

/opt/webapp # touch new.txt
touch: new.txt: Read-only file system

查看數(shù)據(jù)卷的具體信息,在主機里使用一下命令可以查看 web 容器的信息

$ docker inspect web
...
"Mounts": [
  {
    "Type": "bind",
    "Source": "/src/webapp",
    "Destination": "/opt/webapp",
    "Mode": "",
    "RW": true,
    "Propagation": "rprivate"
  }
],

掛載一個本地主機文件作為數(shù)據(jù)卷割疾,--mount 標記也可以從主機掛載單個文件至容器中

$ docker run --rm -it --mount type=bind,source=$HOME/.bash_history,target=/root/.bash_history ubuntu:17.10 bash

root@2affd44b4667:/# history
1 ls
2 diskutil list

這樣就可以記錄容器中輸入的命令了

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嚎卫,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拓诸,老刑警劉巖侵佃,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異奠支,居然都是意外死亡馋辈,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進店門倍谜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來迈螟,“玉大人,你說我怎么就攤上這事尔崔〈鸷粒” “怎么了?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵季春,是天一觀的道長洗搂。 經(jīng)常有香客問我,道長载弄,這世上最難降的妖魔是什么蚕脏? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮侦锯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘秦驯。我一直安慰自己尺碰,他們只是感情好,可當我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布译隘。 她就那樣靜靜地躺著亲桥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪固耘。 梳的紋絲不亂的頭發(fā)上题篷,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天,我揣著相機與錄音厅目,去河邊找鬼番枚。 笑死,一個胖子當著我的面吹牛损敷,可吹牛的內(nèi)容都是我干的葫笼。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼拗馒,長吁一口氣:“原來是場噩夢啊……” “哼路星!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起诱桂,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤洋丐,失蹤者是張志新(化名)和其女友劉穎呈昔,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體友绝,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡堤尾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了九榔。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哀峻。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖哲泊,靈堂內(nèi)的尸體忽然破棺而出剩蟀,到底是詐尸還是另有隱情,我是刑警寧澤切威,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布育特,位于F島的核電站,受9級特大地震影響先朦,放射性物質(zhì)發(fā)生泄漏缰冤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一喳魏、第九天 我趴在偏房一處隱蔽的房頂上張望棉浸。 院中可真熱鬧,春花似錦刺彩、人聲如沸迷郑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嗡害。三九已至,卻和暖如春畦攘,著一層夾襖步出監(jiān)牢的瞬間霸妹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工知押, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留叹螟,地道東北人。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓台盯,卻偏偏與公主長得像首妖,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子爷恳,可洞房花燭夜當晚...
    茶點故事閱讀 45,573評論 2 359

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

  • 默認情況下有缆,容器內(nèi)創(chuàng)建的所有文件都存儲在可寫容器層上。 這意味著: 當容器不再運行時,數(shù)據(jù)不會持續(xù)存在棚壁,并且如果另...
    運維開發(fā)_西瓜甜閱讀 2,436評論 0 12
  • Docker容器技術(shù)已經(jīng)發(fā)展了好些年杯矩,在很多項目都有應用,線上運行也很穩(wěn)定袖外。整理了部分Docker的學習筆記以及新...
    __七把刀__閱讀 11,453評論 0 58
  • 感恩媽媽帶孩子做飯史隆。感恩李紅發(fā)在家陪兒子。感恩王偉的邀請去做酸菜魚紅燒肉等菜曼验。感恩平平的到來泌射。感恩端姐下課去品嘗你...
    李_32f6閱讀 188評論 0 0
  • . Do you either master your fate or master you? . All thi...
    享悅moonlight閱讀 234評論 0 0
  • 一個電話告知你又要上北京值班啦,雖已有預感鬓照,但心里還是有點小凄楚熔酷。這樣的值班每年都有兩三次,分別對我們來說...
    幸福像花一樣_61f8閱讀 88評論 0 0