Docker_容器数据卷
容器數據卷
當使用docker容器的時候,會產生一系列的數據文件,這些數據文件在關閉docker容器時會消失,但其中產生的部分內容希望能夠把它給保存起來另作用途的,Docker將應用與運行環境打包成容器發布,我們希望在運行過程鐘產生的部分數據是可以持久化的,而且容器之間也希望能夠實現數據共享。
通俗地來說,docker容器數據卷可以看成生活中常用的u盤,它存在于一個或多個的容器中,由docker掛載到容器,但不屬于聯合文件系統,Docker不會在容器刪除時刪除其掛載的數據卷。
特點:
- 數據卷可以在容器之間共享或重用數據
- 數據卷中的更改可以直接生效
- 數據卷中的更改不會包含在鏡像的更新中
- 數據卷的生命周期一直持續到沒有容器使用它為止
容器數據卷添加
有兩種添加方式
直接命令添加
docker run -it 鏡像名 -v /宿主機的絕對路徑目錄:容器內目錄 鏡像名
容器內有dataVolumeContainer這個文件夾,該命令也有創建的功能
主機中也有myDataVolume這個文件夾
這兩個文件夾的出現便說明容器數據卷掛載成功,可以進行數據的共享和對接。
容器與宿主機之間數據共享
主機建立一個house.txt文件
在容器內的dataVolumeContainer文件夾中查看
容器停止退出后,數據還是會進行同步
先退出容器
再主機中的myDataVolume文件夾下添加一個shy.txt文件
再來開啟一下容器,查看是否能數據同步
發現即使容器退出,還是可以正常的進行數據共享的
DockerFile添加
在主機上添加一個/mydocker目錄,在目錄中編寫Dockerfile文件
構建成鏡像
docker build -f /mydocker/Dockerfile -t shy/centos .
進入容器內,發現有兩個容器卷
對應的主機目錄,因為沒有指定,所以docker會默認存放到主機的一個位置中,可以使用下面命令查看
也可以直接指定主機目錄
docker run -it -v /host1:/dataVolumeContainer1 -v /host2:/dataVolumeContainer2 shy/centos /bin/bashDocker掛載主機目錄Docker訪問出現cannot open directory : Permission denied
解決方法:在掛載目錄后多加一個 --privileged=true參數即可數據卷容器
命名的容器掛載數據卷,其他容器通過掛載這個(父容器)實現數據共享,掛載數據卷的容器,稱之為數據卷容器
也就是容器之間傳遞共享
docker run -it --name 容器子類 --volumes-from 容器父類 鏡像名稱/ID容器之間配置信息的傳遞,數據卷的生命周期一直持續到沒有容器使用它為止(即使將父類容器刪除,只要還有其他容器存在,就會進行數據共享。)
總結
以上是生活随笔為你收集整理的Docker_容器数据卷的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Docker_镜像
- 下一篇: Docker_DockerFile