本篇來自於尚硅谷周陽老師 https://www.bilibili.com/vide...
上一篇: docker 入門到實戰(四)docker鏡像
數據卷就是數據(一個文件或者文件夾)。數據卷是特殊的目錄,能夠繞過聯合文件系統,爲一個或多個容器提供訪問。html
數據卷設計的目的是數據的永久化,是徹底獨立於容器的生命週期,不會在容器刪除時刪除其掛載的數據卷,也不會存在相似垃圾收集機制,對容器引用的數據捲進行處理。docker
Docker容器產生的數據,若是不經過docker commit生成新的鏡像,使得數據作爲鏡像的一部分保存下來,
那麼當容器刪除後,數據天然也就沒有了。爲了能保存數據在docker中咱們使用卷。segmentfault
做用:
能讓容器持久化
容器之間能夠繼承和共享數據centos
docker run -di -v /宿主機絕對路徑目錄:/容器內目錄 centos
查看容器內部詳情bash
docker inspect 容器ID
宿主機
ide
容器內
訪問網頁
ui
宿主機中止容器修改index.html再啓動
進入容器內查看能同步
spa
docker run -id -v /宿主機絕對路徑目錄:/容器內目錄:ro 鏡像名
dockerfile下章會詳解設計
FROM centos VOLUME ["VolumeContainer1","VolumeContainer2"] CMD echo "finished,---successfully" CMD /bin/bash
Docker掛載主機目錄Docker訪問出現cannot open directory .: Permission denied3d
解決辦法:在掛載目錄後多加一個--privileged=true參數便可
宿主機上
容器內
命名的容器掛載數據卷,其它容器經過掛載這個(父容器)實現數據共享,掛載數據卷的容器,稱之爲數據卷容器
docker run -it --name 子容器 --volumes-from 父容器 image
兩個son容器都有father.txt 實現了數據共享
刪除父容器
在子容器1中新增數據
查看子容器2中的數據
新增孫容器grandson 繼承子容器1
刪除子容器1
在孫容器中新增數據
查看子容器2中的數據
結論:容器之間數據的傳遞,數據卷的什麼週期一直持續到沒有容器使用它爲止