主頁 > 知識(shí)庫 > 詳解Docker容器數(shù)據(jù)卷

詳解Docker容器數(shù)據(jù)卷

熱門標(biāo)簽:智能電銷機(jī)器人真的有用么 撫州市城區(qū)地圖標(biāo)注 電銷智能機(jī)器人試用 中國地圖標(biāo)注上各個(gè)省 百度地圖底圖標(biāo)注 新鄉(xiāng)牧野400電話申請(qǐng) 高德地圖標(biāo)注足跡怎么打標(biāo) 企業(yè)辦理400電話收費(fèi)標(biāo)準(zhǔn) 激光標(biāo)記地圖標(biāo)注

是什么

先來看看Docker的理念:

將運(yùn)用與運(yùn)行的環(huán)境打包形成容器運(yùn)行,運(yùn)行可以伴隨著容器,但是我們對(duì)數(shù)據(jù)的要求希望是持久化的容器之間希望有可能共享數(shù)據(jù)

Docker容器產(chǎn)生的數(shù)據(jù),如果不通過docker commit生成新的鏡像,使得數(shù)據(jù)做為鏡像的一部分保存下來, 那么當(dāng)容器刪除后,數(shù)據(jù)自然也就沒有了。

為了能保存數(shù)據(jù)在docker中我們使用卷。

一句話:有點(diǎn)類似我們Redis里面的RDB和AOF

能干嘛

卷就是目錄或文件,存在于一個(gè)或多個(gè)容器中,由docker掛載到容器,但不屬于聯(lián)合文件系統(tǒng),因此能夠繞過Union FileSystem提供一些用于持續(xù)存儲(chǔ)或共享數(shù)據(jù)的特性:

卷的設(shè)計(jì)目的就是數(shù)據(jù)的持久化,完全獨(dú)立于容器的生存周期,因此Docker不會(huì)在容器刪除時(shí)刪除其掛載的數(shù)據(jù)卷。

特點(diǎn):

  • 數(shù)據(jù)卷可在容器之間共享或重用數(shù)據(jù)
  • 卷中的更改可以直接生效
  • 數(shù)據(jù)卷中的更改不會(huì)包含在鏡像的更新中
  • 數(shù)據(jù)卷容器的生命周期一直持續(xù)到?jīng)]有容器使用它為止 (--volumes from)

總結(jié):

  • 容器數(shù)據(jù)的持久化
  • 容器間繼承+共享數(shù)據(jù)

數(shù)據(jù)卷

直接命令添加

docker run -it -v /宿主機(jī)絕對(duì)路徑目錄:/容器內(nèi)目錄 鏡像名
docker run -it -v /宿主機(jī)絕對(duì)路徑目錄:/容器內(nèi)目錄:ro 鏡像名 // 帶命令,指定訪問權(quán)限, ro: read only

  查看數(shù)據(jù)卷是否掛載成功:

docker inspect 容器ID

使用DockerFile添加

根目錄下新建mydocker文件夾并進(jìn)入

可在Dockerfile中使用VOLUME指令來給鏡像添加一個(gè)或多個(gè)數(shù)據(jù)卷

DockerFile 構(gòu)建

DockerFile的編寫可以參考 DockerHub 中各鏡像的DockerFile文件,如tomcat:https://github.com/docker-library/tomcat/blob/300ac03f4696c761a81fa10afbb893f3368061de/8.5/jdk8/openjdk-buster/Dockerfile

#volume test
FROM centos
VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]
CMD echo "finished,-------success1"
CMD /bin/bash

build后生成鏡像

獲得一個(gè)新鏡像zzyy/centos

run容器

通過上述步驟,容器內(nèi)的卷目錄地址已經(jīng)知道,對(duì)應(yīng)的主機(jī)目錄在哪

備注:

Docker掛載主機(jī)目錄Docker訪問出現(xiàn)cannot open directory,Permission denied

解決辦法:在掛載目錄后多加一個(gè)--privileged=true參數(shù)即可

數(shù)據(jù)卷容器

是什么

  命名的容器掛載數(shù)據(jù)卷,其它容器通過掛載這個(gè)(父容器)實(shí)現(xiàn)數(shù)據(jù)共享,掛載數(shù)據(jù)卷的容器,稱之為數(shù)據(jù)卷容器.

容器間傳遞共享(--volumes -from)

docker run -it --name dco2 --volumes-from dc01 zzyy/cenos  // dc01是先創(chuàng)建的容器,dco2繼承dc01,實(shí)現(xiàn)數(shù)據(jù)共享

數(shù)據(jù)卷由父容器(dc01)掛載,如果在dc02,dc03掛載dc01后,刪除dc01,數(shù)據(jù)卷仍然會(huì)有效。

容器之間配置信息的傳遞,數(shù)據(jù)卷的生命周期一直持續(xù)到?jīng)]有容器使用它為止。

總結(jié)

到此這篇關(guān)于Docker容器數(shù)據(jù)卷的文章就介紹到這了,更多相關(guān)Docker容器數(shù)據(jù)卷內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

標(biāo)簽:辛集 延安 西安 海西 邯鄲 南通 忻州 臨汾

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解Docker容器數(shù)據(jù)卷》,本文關(guān)鍵詞  詳解,Docker,容器,數(shù)據(jù),卷,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解Docker容器數(shù)據(jù)卷》相關(guān)的同類信息!
  • 本頁收集關(guān)于詳解Docker容器數(shù)據(jù)卷的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章