目錄
1.引入數據卷
* 將運用與運行的環境打包形成容器運行 ,運行可以伴隨着容器,但是我們對數據的要求希望是持久化的
* 容器之間希望有可能共享數據
Docker容器產生的數據,如果不通過docker commit生成新的鏡像,使得數據做爲鏡像的一部分保存下來,
那麼當容器刪除後,數據自然也就沒有了。
爲了能保存數據在docker中我們使用卷。
2.作用(將容器產生的數據持久化)
卷就是目錄或文件,存在於一個或多個容器中,由docker掛載到容器,但不屬於聯合文件系統,因此能夠繞過Union File System提供一些用於持續存儲或共享數據的特性:
卷的設計目的就是數據的持久化,完全獨立於容器的生存週期,因此Docker不會在容器刪除時刪除其掛載的數據卷。
特點:
1:數據卷可在容器之間共享或重用數據
2:卷中的更改可以直接生效
3:數據卷中的更改不會包含在鏡像的更新中
4:數據卷的生命週期一直持續到沒有容器使用它爲止
(容器間繼承+共享數據 容器的持久化)
3.容器內添加
docker run -it -v /宿主機絕對路徑目錄:/容器內目錄 鏡像名
4.查看是否掛載成功
docker inspect 容器ID
5.容器啓動帶權限(只讀)
docker run -it -v /宿主機絕對路徑目錄:/容器內目錄:ro 鏡像名
6.其他問題
Docker掛載主機目錄Docker訪問出現cannot open directory .: Permission denied
解決辦法:在掛載目錄後多加一個--privileged=true參數即可
dockfile初探:
dockerfile 編輯
- 1.dockerfile文件編輯
- 2.docker build -f 路徑 docker配置文件名稱 -t 新鏡像名稱:標籤 .
- 3.docker run 新鏡像名稱:標籤
7.數據卷容器
容器間傳遞共享(--volumes-from)
容器之間配置信息的傳遞,數據卷的生命週期一直持續到沒有容器使用它爲止
dc01
docker run -it --name dc01 mycentos
===dco2繼承與dc01
dco2
docker run -it --name dc01 --volumes-from dc01 mycentos
== dco3繼承與dc02
dco3
docker run -it --name dc02 --volumes-from dc01 mycentos