Docker系列7:邏輯卷

一、存儲卷簡介

成都創(chuàng)新互聯(lián)公司服務項目包括克拉瑪依網站建設、克拉瑪依網站制作、克拉瑪依網頁制作以及克拉瑪依網絡營銷策劃等。多年來,我們專注于互聯(lián)網行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網行業(yè)的解決方案,克拉瑪依網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到克拉瑪依省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

1、什么是存儲卷(volume)

  • 就將一個容器的目錄和一個宿主機的目錄同步起來了,就稱之為volume,也就是存儲卷。

  • 當在容器中產生數(shù)據(jù)的時候,這個數(shù)據(jù)就會直接寫入到了物理磁盤,就解決了性能的問題

  • 使用存儲卷,還實現(xiàn)了數(shù)據(jù)的持久存儲

  • 通過使用存儲卷,還可以實現(xiàn)分布式

    Docker系列7:邏輯卷

2、存儲卷的類型

  • Bind mount volume:

  • Docker managed volume

Bind mount volume

  • 這種類型是指在創(chuàng)建容器的時候,需要同時指定容器中的掛載點和宿主機的一個目錄,這樣來完成掛載

Docker managed volume

  • 這種類型是在創(chuàng)建容器的時候,僅僅需要同指定容器中的掛載點,不需要指定宿主機中的目錄就可以完成掛載。

  • 宿主機中的目錄會由docker自動生成,而且是隨機生成,默認:/var/lib/docker/vfs/dir/xxxx

案例1:創(chuàng)建一個docker管理的卷

[root@host1?~]#?docker?run?--name?httpd1?-it?--rm?-v?/data?busybox
/?#?
/?#?echo?"test?message">>/data/test.txt
/?#
[root@host1?~]#?docker?inspect?httpd1
"Mounts":?[
????????????{
????????????????"Type":?"volume",
????????????????"Name":?"636a1967c63705161f941550edf4b0ced1584bf71087596ad61a49df4cd6ae4c",
????????????????"Source":?"/var/lib/docker/volumes/636a1967c63705161f941550edf4b0ced1584bf71087596ad61a49df4cd6ae4c/_data",
????????????????"Destination":?"/data",
????????????????"Driver":?"local",
????????????????"Mode":?"",
????????????????"RW":?true,
????????????????"Propagation":?""
????????????}
????????],
[root@host1?~]#?cd?/var/lib/docker/volumes/636a1967c63705161f941550edf4b0ced1584bf71087596ad61a49df4cd6ae4c/_data
[root@host1?_data]#?cat?test.txt?
test?message
[root@host1?_data]#

案例2:創(chuàng)建容器,使用宿主機的/disk目錄掛載到容器中

[root@host1?~]#?docker?run?--name?httpd1?-it?--rm?-v?/disk:/data?busybox
/?#?
/?#?echo?"test?message">/data/t.txt
/?#
[root@host1?..]#?cat?/disk/t.txt?
test?message
  • 宿主機上的/disk如果不存在,會自動創(chuàng)建

我們在設置容器所用的存儲卷的時候,還可以設置容器所用的存成卷和另一個容器的存儲卷相同

案例3:比如前面我們做好了容器httpd1,這里我們再做一個httpd2,讓2和1用相同的存儲卷

[root@host1?..]#?docker?run?--name?httpd2?--rm?-it?--volumes-from?httpd1?busybox
/?#?
/?#?ls?/data/
t.txt
/?#

3、基礎架構容器使用舉例

  • 首先我們可以先做個容器,這個容器不需要運行,而是僅僅作為一個基礎架構支撐容器

  • 新建容器的卷復制于這個容器,比如,復制三個容器出來,第一個是nginx作為反向代理,第二個是apache出來靜態(tài)請求,第三個是php處理php請求:

? ??Docker系列7:邏輯卷

  • 這個基礎架構支撐容器,還可以提供一個公共的名稱空間,這樣上面的三個容器就有了相同的IP,主機名,而且也可以基于127進行通信了

案例:基于基礎架構容器制作容器

1)先創(chuàng)建基礎架構容器

[root@host1?~]#?docker?run?--name?base1?-it?--rm?-v?/disk:/data?busybox

2)創(chuàng)建nginx容器,復制基礎架構的卷,并使用基礎架構名空間

[root@host1?..]#?docker?run?--name?nginx1?\
>?--network?container:base1?\
>?--volumes-from?base1?-it?nginx:1.14-alpine

過濾容器屬性數(shù)據(jù)

  • docker inspect的結果是一個列表,在列表列表中是json格式的字符串

  • 如果此時要過濾數(shù)據(jù),其格式是 docker inspect -f {xxx} b5 來實現(xiàn)過濾效果

  • -f后面是雙{},外側的{}是固定格式,內側的{}表示從{}中進行過濾

  • 過濾元素的格式 -f '{{.path.item}}'

[root@host1?..]#?docker?inspect?httpd1?-f?'{{.Id}}'
24053ef79c61400f0f8a151087bfd7c1e31e004ee9b87b8a2e64f1efd72d2b52

[root@host1?..]#?docker?inspect?httpd1?-f?'{{.State.Status}}'
running

本文名稱:Docker系列7:邏輯卷
分享網址:http://www.muchs.cn/article10/ghjgdo.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供云服務器、響應式網站、外貿建站虛擬主機、標簽優(yōu)化網站改版

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網站優(yōu)化排名