Docker學習(13) 卷與持久化數(shù)據(jù)

Docker學習(13) 卷與持久化數(shù)據(jù)

卷與持久化數(shù)據(jù)——簡介

  • 數(shù)據(jù)主要分為兩種:持久化和非持久化悴侵。
    • 持久化:就是需要保持的數(shù)據(jù)页徐。希望自己的容器數(shù)據(jù)保存下來笼才,需要將數(shù)據(jù)存儲在卷上仲翎,卷與容器是解耦的壶辜∶踔郏可以獨立創(chuàng)建并管理卷,卷不與任何容器的生命周期綁定砸民,最終用戶可以刪除與卷關聯(lián)的容器抵怎,但是卷不會被刪除奋救。
    • 非持久化:不需要保存的數(shù)據(jù),非持久化存儲自動創(chuàng)建反惕,從屬于容器尝艘,生命周期與容器相連,刪除容器就是刪除全部非持久化數(shù)據(jù)姿染。

卷與持久化數(shù)據(jù)——詳解

容器與非持久化數(shù)據(jù)

  • 容器擅長無狀態(tài)和非持久化事務
  • 容器被自動分配本地存儲背亥,容器的全部文件和文件系統(tǒng)一般都保存在/var/lib/docker/overlay2/目錄下
  • 默認情況下,容器的所有存儲都使用的本地存儲悬赏。

容器和持久化數(shù)據(jù)

  • 容器持久化的方式使用卷
  • 用戶先創(chuàng)建卷然后創(chuàng)建容器狡汉。接著卷掛載到容器上。
  • 卷與容器是非解耦的關系

創(chuàng)建和管理容器卷

  • 創(chuàng)建名為myvol的新卷
$ docker volume create myvol
myvol

  • docker創(chuàng)建新卷采用的是內置的local驅動闽颇,本地卷只能被所在節(jié)點的容器使用

  • -d參數(shù)可以指定不同發(fā)熱驅動

  • 一直有25中卷插件盾戴,涵蓋了塊存儲、文件存儲兵多、對象存儲等

    • 塊存儲:相對性能較高尖啡,適合小塊數(shù)據(jù)的隨機訪問的負載
    • 文件存儲:包含NFS和SMB協(xié)調的系統(tǒng),在高性能場景下表現(xiàn)優(yōu)異
    • 對象存儲:適合較大且長期存儲剩膘、而且很少變更的二進制數(shù)據(jù)存儲衅斩。
  • 查看卷
$ docker volume ls
DRIVER              VOLUME NAME
local               1c7824e5eccb82556e165af9b773cb7a10b4aa3fdebec6ac767b1591cb292692
local               counter-app-master_counter-vol
local               d94305a95f6e318124ec41d23fbed8e3b948cbd4e2f11d6a0bfbaf1a91f19806
local               myvol

  • 查看卷myvol的詳細信息
$ docker volume inspect myvol
[
    {
        "CreatedAt": "2019-11-12T23:38:28+08:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/myvol/_data",
        "Name": "myvol",
        "Options": {},
        "Scope": "local"
    }
]

  • Driver和Scope都是lcoal ,說明卷使用默認的local驅動創(chuàng)建的怠褐,只能用于當前docker主機上的容器畏梆。
  • Mountpoint說明卷位于主機的位置:"/var/lib/docker/volumes/myvol/_data"
  • 使用命令docker container run 加上參數(shù)--flag將卷掛載到新的容器上
  • 有兩只方式刪除docker卷:
    • docker volume prune: 會刪除未裝入容器和服務的所有卷
    • docker volume rm :可以刪除指定卷
    • 兩個命令都不能刪除被容器和服務使用的卷。
$ docker volume prune 
WARNING! This will remove all local volumes not used by at least one container.
Are you sure you want to continue? [y/N] y
Deleted Volumes:
1c7824e5eccb82556e165af9b773cb7a10b4aa3fdebec6ac767b1591cb292692
counter-app-master_counter-vol
d94305a95f6e318124ec41d23fbed8e3b948cbd4e2f11d6a0bfbaf1a91f19806
myvol

Total reclaimed space: 1.411kB

演示卷在容器和服務中使用

  • 創(chuàng)建一個新的獨立容器惫搏,并掛載名為bizvol的卷
$ docker container run -dit --name voltainer \
> --mount source=bizvol,target=/vol \
> alpine
51d16820daca34d76fea43f2465aa546b67460381abd8ccbe84493075c05c5dc

  • 及時系統(tǒng)中沒有bizvol的卷具温,也能運行成功。:

    • 如果指定了docker已經(jīng)存儲的卷筐赔,docker會使用該卷
    • 如果指定了不存在的卷,docker會創(chuàng)建一個卷
  • 查看卷

$ docker volume ls
DRIVER              VOLUME NAME
local               bizvol

  • exec連接到容器并想卷中寫入一部分數(shù)據(jù)
$ docker container exec -it voltainer sh
/ # echo "docker volume" > /vol/file.txt
/ # ls /vol/
file.txt
/ # cat /vol/file.txt 
docker volume

  • 刪除容器
$ docker container rm voltainer -f
voltainer

  • 即使容器被刪除但是卷依然存在
~$ docker container  ls
CONTAINER ID        IMAGE               COMMAND             CREATED           $ docker volume  ls
DRIVER              VOLUME NAME
local               bizvol
# ls /var/lib/docker/volumes/bizvol/_data/
file.txt
# cat /var/lib/docker/volumes/bizvol/_data/file.txt 
docker volume

  • 數(shù)據(jù)依然存儲
  • 創(chuàng)建一個名為hellocat新的docker容器上揖铜,并bizvol掛載到該容器的/vol目錄下
docker container run -dit --name hellocat \
> --mount source=bizvol,target=/vol \
> alpine
41a4916cc809bde6037289660ae40bea47ee9406c7830c98e981bfc2d96206c6
# docker container exec  -it hellocat sh

/ # cat /vol/file.txt 
docker volume

在集群節(jié)點間共享存儲

  • Docker能夠集成外部存儲系統(tǒng)茴丰,使集群間節(jié)點節(jié)點共享外部存儲。

卷與持久化數(shù)據(jù)——命令

  • docker volume create :創(chuàng)建新卷天吓,默認使用的local驅動贿肩,加-d參數(shù)指定不同驅動

  • docker volume ls :查看docker主機的全部卷

  • docker volume inspect: 查看卷的詳細信息

  • docker volume prune :刪除未被容器和服務使用的卷

  • docker volume rm:刪除指定卷

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市龄寞,隨后出現(xiàn)的幾起案子汰规,更是在濱河造成了極大的恐慌,老刑警劉巖物邑,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件溜哮,死亡現(xiàn)場離奇詭異滔金,居然都是意外死亡,警方通過查閱死者的電腦和手機茂嗓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門餐茵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人述吸,你說我怎么就攤上這事忿族。” “怎么了蝌矛?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵道批,是天一觀的道長。 經(jīng)常有香客問我入撒,道長屹徘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任衅金,我火速辦了婚禮噪伊,結果婚禮上,老公的妹妹穿的比我還像新娘氮唯。我一直安慰自己鉴吹,他們只是感情好,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布惩琉。 她就那樣靜靜地躺著豆励,像睡著了一般。 火紅的嫁衣襯著肌膚如雪瞒渠。 梳的紋絲不亂的頭發(fā)上良蒸,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天,我揣著相機與錄音伍玖,去河邊找鬼嫩痰。 笑死,一個胖子當著我的面吹牛窍箍,可吹牛的內容都是我干的串纺。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼椰棘,長吁一口氣:“原來是場噩夢啊……” “哼纺棺!你這毒婦竟也來了?” 一聲冷哼從身側響起邪狞,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤祷蝌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后帆卓,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體巨朦,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡米丘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了罪郊。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蠕蚜。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖悔橄,靈堂內的尸體忽然破棺而出靶累,到底是詐尸還是另有隱情,我是刑警寧澤癣疟,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布挣柬,位于F島的核電站,受9級特大地震影響睛挚,放射性物質發(fā)生泄漏邪蛔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一扎狱、第九天 我趴在偏房一處隱蔽的房頂上張望侧到。 院中可真熱鬧,春花似錦淤击、人聲如沸匠抗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽汞贸。三九已至,卻和暖如春印机,著一層夾襖步出監(jiān)牢的瞬間矢腻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工射赛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留多柑,地道東北人。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓咒劲,卻偏偏與公主長得像顷蟆,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子腐魂,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內容