Docker的那些事兒—Docker數(shù)據(jù)卷(一)(29)


上一篇:Docker的那些事兒—Docker數(shù)據(jù)管理(28)


數(shù)據(jù)卷是一個(gè)或多個(gè)容器專門指定繞過Union File System,為持續(xù)性或共享數(shù)據(jù)提供一些有用的功能:

(1)數(shù)據(jù)卷可以在容器間共享和重用。

(2)數(shù)據(jù)卷數(shù)據(jù)的改變是直接修改的。

(3)數(shù)據(jù)卷數(shù)據(jù)的改變不會(huì)被包括在容器中。

(4)數(shù)據(jù)卷是持續(xù)性的,直到?jīng)]有容器使用它們。

數(shù)據(jù)卷操作

Docker啟動(dòng)的時(shí)候可以通過-v選項(xiàng)添加數(shù)據(jù)卷,實(shí)現(xiàn)將主機(jī)上的目錄或者文件掛載到容器中。完整的參數(shù)為:

-v host-dir:container-dir:[rw|wo]

-v container-dir:[rw|wo]

-v volume-name:container-dir:[rw|wo]

其中,

host-dir:表示主機(jī)上的目錄,如果不存在,Docker 會(huì)自動(dòng)在主機(jī)上創(chuàng)建該目錄。必須是絕對(duì)路徑。

container-dir:表示容器內(nèi)部對(duì)應(yīng)的目錄,如果該目錄不存在,Docker 也會(huì)在容器內(nèi)部創(chuàng)建該目錄。

volume-name:表示卷名,如果該卷不存在,docker將自動(dòng)創(chuàng)建。

rw|ro:用于控制volume的讀寫權(quán)限。

(1)docker run -itd -P -v /test:/data --name myhttp httpd

在宿主機(jī)/test目錄下創(chuàng)建test.txt文件,觀察容器內(nèi)/data目錄下內(nèi)容變化

docker container inspect myhttp查詢Mounts參數(shù)如下:

刪除容器,宿主機(jī)上/test目錄及內(nèi)容未發(fā)生任何變化。

(2)docker run -itd -P -v /data --name myhttp httpd

我們看到容器內(nèi)出現(xiàn)了/data目錄。那這一次又是宿主機(jī)上哪個(gè)目錄掛載到/data下的呢?

我們使用docker volume ls查詢,發(fā)現(xiàn)多了一個(gè)本地卷:f343bc68303155c111bea58a907131d9fe1751bc8ef6528cc53d5b7dce292dee

使用docker volume inspect查詢到如下的掛下點(diǎn)目錄:

/var/lib/docker/volumes/f343bc68303155c111bea58a907131d9fe1751bc8ef6528cc53d5b7dce292dee/_data

當(dāng)在上述目錄下創(chuàng)建test.txt文件后,容器內(nèi)也查詢到該新增文件。

刪除容器后,宿主機(jī)上的目錄及內(nèi)容也未發(fā)生任何變化。

(3)docker run -itd -P -v my_volume:/data --name myhttp httpd

docker自動(dòng)創(chuàng)建了卷:my_volume,并且這個(gè)卷對(duì)應(yīng)的宿主機(jī)的掛載點(diǎn)是:

/var/lib/docker/volumes/my_volume/_data。這和第二種方式幾乎一樣,不同點(diǎn)在于未指定volume名是docker會(huì)在/var/lib/docker/volumes隨機(jī)創(chuàng)建一個(gè)目錄。

docker container inspect myhttp查詢Mounts參數(shù)如下:

對(duì)于docker數(shù)據(jù)卷的總結(jié):

(1) 三種方式都可以將宿主機(jī)目錄或者文件掛載到容器。

(2) Docker提供了docker volume命令專門對(duì)volume進(jìn)行管理。對(duì)于第一種方式Type為bind,是無(wú)法使用docker volume進(jìn)行管理的。我們也可以使用docker volume create命令創(chuàng)建volume。

(3) 刪除容器是如果使用docker rm container將不會(huì)刪除對(duì)應(yīng)的Volume。如果想要?jiǎng)h除可以使用docker rm -v container。另外也可以單獨(dú)使用docker volume rm volume_name刪除volume。

(4) 對(duì)于已運(yùn)行的數(shù)據(jù)卷容器,不能動(dòng)態(tài)的調(diào)整其卷的掛載。Docker官方提供的方法是先刪除容器,然后啟動(dòng)時(shí)重新掛載。



下一篇:Docker的那些事兒—Docker數(shù)據(jù)卷(二)(30)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載自 http://blog.opskumu.com/docker.html 一、Docker 簡(jiǎn)介 Docke...
    極客圈閱讀 10,728評(píng)論 0 120
  • Docker學(xué)習(xí)總結(jié)之Run命令介紹 - vikings`s blog - 博客園http://www.cnblo...
    葡萄喃喃囈語(yǔ)閱讀 1,357評(píng)論 0 1
  • 一、Docker 簡(jiǎn)介 Docker 兩個(gè)主要部件:Docker: 開源的容器虛擬化平臺(tái)Docker Hub: 用...
    R_X閱讀 4,508評(píng)論 0 27
  • 姐姐告訴我了一部動(dòng)漫,叫銀魂。 開始看了一兩集挺喜歡的慢慢的忘了,偶然在17年初又喜歡上了這部動(dòng)漫。 喜歡,就是喜...
    白楠澈閱讀 264評(píng)論 3 0
  • 上周四,我叫滴滴快車到機(jī)關(guān)醫(yī)院拿藥,來接我的快車竟然是一輛林肯車,我核對(duì)車牌號(hào)后也未敢上車,正在我盲然時(shí),司機(jī)向我...
    吾吾齋閱讀 170評(píng)論 0 0

友情鏈接更多精彩內(nèi)容