docker 入門到實戰(五)docker容器數據卷

本篇來自於尚硅谷周陽老師 https://www.bilibili.com/vide...
上一篇: docker 入門到實戰(四)docker鏡像

五:docker容器數據卷

5.1 docker容器數據卷是什麼

數據卷就是數據(一個文件或者文件夾)。數據卷是特殊的目錄,能夠繞過聯合文件系統,爲一個或多個容器提供訪問。html

數據卷設計的目的是數據的永久化,是徹底獨立於容器的生命週期,不會在容器刪除時刪除其掛載的數據卷,也不會存在相似垃圾收集機制,對容器引用的數據捲進行處理。docker

Docker容器產生的數據,若是不經過docker commit生成新的鏡像,使得數據作爲鏡像的一部分保存下來,
那麼當容器刪除後,數據天然也就沒有了。爲了能保存數據在docker中咱們使用卷。segmentfault

做用:
能讓容器持久化
容器之間能夠繼承和共享數據centos

5.2 數據卷的特色

  1. 數據卷可在容器之間共享或重用數據
  2. 卷中的更改能夠直接生效
  3. 數據卷中的更改不會包含在鏡像的更新中
  4. 數據卷的生命週期一直持續到沒有容器使用它爲止

5.3 添加數據卷(數據目錄掛載)==>命令添加

5.3.1 命令添加
 docker run -di -v /宿主機絕對路徑目錄:/容器內目錄 centos

image.png

5.3.2 查看數據是否掛載成功

查看容器內部詳情bash

docker inspect 容器ID

image.png

5.3.3 容器和宿主機之間數據共享

宿主機
image.pngide

image.png
容器內
image.png
訪問網頁
image.pngui

5.3.4 容器中止退出後,主機修改後數據是否同步

宿主機中止容器修改index.html再啓動
image.png
進入容器內查看能同步
image.pngspa

5.3.5 目錄掛載只讀(Read-only)權限
docker run -id -v /宿主機絕對路徑目錄:/容器內目錄:ro 鏡像名

5.4 添加數據卷(數據目錄掛載)==>DockerFile添加

5.4.1 file構建

dockerfile下章會詳解設計

image.png

FROM centos
VOLUME ["VolumeContainer1","VolumeContainer2"]
CMD echo "finished,---successfully"
CMD /bin/bash

Docker掛載主機目錄Docker訪問出現cannot open directory .: Permission denied3d

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

5.4.2 build後生成鏡像

image.png

5.4.3 run 生成容器

image.png

5.4.4 查看目錄掛載

image.png

宿主機上
image.png

容器內
image.png

5.5 數據卷容器

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

5.5.1 建立一個父容器

image.png

5.5.2 在父容器中添加數據

image.png

5.5.3 建立兩個子容器繼承父容器
docker run -it --name 子容器 --volumes-from 父容器 image

兩個son容器都有father.txt 實現了數據共享
image.png

image.png

5.5.4 驗證信息傳遞

刪除父容器
image.png

在子容器1中新增數據
image.png

查看子容器2中的數據
image.png

新增孫容器grandson 繼承子容器1
image.png

刪除子容器1
image.png

在孫容器中新增數據
image.png

查看子容器2中的數據
image.png

結論:容器之間數據的傳遞,數據卷的什麼週期一直持續到沒有容器使用它爲止

下一篇:
docker 入門到實戰(六)dockerFile解析

相關文章
相關標籤/搜索