Docker Swarm - 存儲管理

文/Anoyi

? 前言介紹

為了獲得最佳的性能和可移植性亿乳,應該避免將重要數(shù)據(jù)直接寫入容器的可寫層硝拧,而應使用數(shù)據(jù)卷或綁定掛載。這個原則也適用于服務葛假。

可以為集群中的服務創(chuàng)建兩種類型的掛載障陶,數(shù)據(jù)卷掛載(volume mounts)綁定掛載(bind mounts)。無論使用哪種類型的掛載聊训,在創(chuàng)建服務時使用 --mount 標志進行配置抱究,或者在更新服務時使用 --mount-add--mount-rm 標志。如果不指定一個類型带斑,默認類型是數(shù)據(jù)卷掛載鼓寺。

tmpfs mount 僅可用于獨立容器勋拟,不能在 Docker Swarm Service 中使用,故此處不介紹妈候。

? 數(shù)據(jù)卷掛載 (DATA VOLUMES) ??

數(shù)據(jù)卷是在主機上的持久化存儲敢靡,即使容器刪除,也不會影響數(shù)據(jù)卷苦银。數(shù)據(jù)卷的相關(guān)操作見文末《附錄 1 Docker 數(shù)據(jù)卷常用操作》

掛載已存在的數(shù)據(jù)卷

docker service create \
  --mount src=<VOLUME-NAME>,dst=<CONTAINER-PATH> \
  --name myservice \
  <IMAGE>

在即將啟動容器之前自動創(chuàng)建數(shù)據(jù)卷

docker service create \
  --mount type=volume,src=<VOLUME-NAME>,dst=<CONTAINER-PATH>,volume-driver=<DRIVER>,volume-opt=<KEY0>=<VALUE0>,volume-opt=<KEY1>=<VALUE1>
  --name myservice \
  <IMAGE>

注意:如果 volume-opt 參數(shù)中包含逗號啸胧, 則需要用雙引號修飾此參數(shù),并用單引號修飾整個 --mount 配置幔虏,示例:

docker service create \
 --mount type=volume,src=<VOLUME-NAME>,dst=<CONTAINER-PATH>,volume-driver=<DRIVER>,volume-opt=<KEY0>=<VALUE0>,volume-opt=<KEY1>=<VALUE1>
 --name myservice \
 <IMAGE>

? 綁定掛載 (BIND MOUNTS) ??

綁定掛載是調(diào)度程序為該任務部署容器時主機的文件系統(tǒng)路徑吓揪,Docker 將路徑掛載到容器中。在 Swarm 為任務初始化容器之前所计,該文件系統(tǒng)路徑必須存在柠辞。

允許文件讀寫

docker service create \
  --mount type=bind,src=<HOST-PATH>,dst=<CONTAINER-PATH> \
  --name myservice \
  <IMAGE>

文件只讀

docker service create \
  --mount type=bind,src=<HOST-PATH>,dst=<CONTAINER-PATH>,readonly \
  --name myservice \
  <IMAGE>

重要:雖然綁定掛載能用,但是也有可能導致一些問題:

  • 如果你掛載了一個主機路徑到你的服務容器中主胧,那么這個路徑必須存在于 Swarm 集群中的每一個節(jié)點叭首。Docker Swarm 調(diào)度器會把容器調(diào)度到任何滿足資源可用性和滿足你特定約束、位置偏好的節(jié)點上踪栋。
  • 如果運行中的容器變得不健康或者不可用焙格,那么 Docker Swarm 調(diào)度器可能會隨時重新安排它。
  • 主機綁定掛載是完全不可移植的夷都。當你使用綁定掛載時眷唉,不能保證你的應用在開發(fā)中的運行方式與在生產(chǎn)中的運行方式相同。

? 附錄 1 Docker 數(shù)據(jù)卷常用操作

創(chuàng)建數(shù)據(jù)卷

docker volume create <VOLUME_NAME>
docker@ManagerX:~$ docker volume create data_mongo
data_mongo

數(shù)據(jù)卷列表

docker volume ls
docker@ManagerX:~$ docker volume ls
DRIVER              VOLUME NAME
local               data_mongo

數(shù)據(jù)卷詳情

docker volume inspect <VOLUME_NAME>
docker@ManagerX:~$ docker volume inspect data_mongo
[
    {
        "CreatedAt": "2018-01-11T10:50:30Z",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/mnt/sda1/var/lib/docker/volumes/data_mongo/_data",
        "Name": "data_mongo",
        "Options": {},
        "Scope": "local"
    }
]

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

docker volume rm <VOLUME_NAME>
docker@ManagerX:~$ docker volume rm data_mongo
data_mongo

批量刪除無用數(shù)據(jù)卷

docker volume prune

官方文檔https://docs.docker.com/engine/reference/commandline/volume_create/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末囤官,一起剝皮案震驚了整個濱河市冬阳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌党饮,老刑警劉巖肝陪,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異刑顺,居然都是意外死亡氯窍,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門蹲堂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來狼讨,“玉大人,你說我怎么就攤上這事柒竞≌” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鲫骗。 經(jīng)常有香客問我,道長踩晶,這世上最難降的妖魔是什么执泰? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮渡蜻,結(jié)果婚禮上术吝,老公的妹妹穿的比我還像新娘。我一直安慰自己茸苇,他們只是感情好排苍,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著学密,像睡著了一般淘衙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上腻暮,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天彤守,我揣著相機與錄音,去河邊找鬼哭靖。 笑死具垫,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的试幽。 我是一名探鬼主播筝蚕,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼铺坞!你這毒婦竟也來了起宽?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤济榨,失蹤者是張志新(化名)和其女友劉穎燎含,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體腿短,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡屏箍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了橘忱。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赴魁。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖钝诚,靈堂內(nèi)的尸體忽然破棺而出颖御,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布潘拱,位于F島的核電站疹鳄,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏芦岂。R本人自食惡果不足惜瘪弓,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望禽最。 院中可真熱鬧腺怯,春花似錦、人聲如沸川无。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽懦趋。三九已至晾虑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間仅叫,已是汗流浹背走贪。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留惑芭,地道東北人坠狡。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像遂跟,于是被迫代替她去往敵國和親逃沿。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355