佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 詳解Docker容器數據卷

詳解Docker容器數據卷

熱門標簽:百度競價點擊價格的計算公式 硅谷的囚徒呼叫中心 檢查注冊表項 阿里云 美圖手機 智能手機 網站建設 使用U盤裝系統(tǒng)

是什么

先來看看Docker的理念:

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

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

為了能保存數據在docker中我們使用卷。

一句話:有點類似我們Redis里面的RDB和AOF

能干嘛

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

卷的設計目的就是數據的持久化,完全獨立于容器的生存周期,因此Docker不會在容器刪除時刪除其掛載的數據卷。

特點:

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

總結:

  • 容器數據的持久化
  • 容器間繼承+共享數據

數據卷

直接命令添加

docker run -it -v /宿主機絕對路徑目錄:/容器內目錄 鏡像名
docker run -it -v /宿主機絕對路徑目錄:/容器內目錄:ro 鏡像名 // 帶命令,指定訪問權限, ro: read only

  查看數據卷是否掛載成功:

docker inspect 容器ID

使用DockerFile添加

根目錄下新建mydocker文件夾并進入

可在Dockerfile中使用VOLUME指令來給鏡像添加一個或多個數據卷

DockerFile 構建

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后生成鏡像

獲得一個新鏡像zzyy/centos

run容器

通過上述步驟,容器內的卷目錄地址已經知道,對應的主機目錄在哪

備注:

Docker掛載主機目錄Docker訪問出現cannot open directory,Permission denied

解決辦法:在掛載目錄后多加一個--privileged=true參數即可

數據卷容器

是什么

  命名的容器掛載數據卷,其它容器通過掛載這個(父容器)實現數據共享,掛載數據卷的容器,稱之為數據卷容器.

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

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

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

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

總結

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

標簽:山南 湖北 黃山 煙臺 湘潭 賀州 通遼 懷化

巨人網絡通訊聲明:本文標題《詳解Docker容器數據卷》,本文關鍵詞  ;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    哈巴河县| 宜君县| 石楼县| 江川县| 崇仁县| 镇雄县| 施秉县| 鹰潭市| 南雄市| 资中县| 辽阳县| 岱山县| 哈尔滨市| 遂平县| 申扎县| 烟台市| 浮梁县| 始兴县| 惠来县| 彭阳县| 安吉县| 张掖市| 麟游县| 调兵山市| 龙里县| 威信县| 抚松县| 吐鲁番市| 剑川县| 安泽县| 广宁县| 临汾市| 兰州市| 博罗县| 永康市| 达日县| 金昌市| 绥芬河市| 衡山县| 夏津县| 西乌|