目錄
1,什麼是容器數據卷
先來看看Docker的理念:
* 將應用與運行的環境打包形成容器運行 ,運行可以伴隨着容器,但是我們對數據的要求希望是持久化的
* 容器之間希望有可能共享數據
Docker容器產生的數據,如果不通過docker commit生成新的鏡像,使得數據做爲鏡像的一部分保存下來,
那麼當容器刪除後,數據自然也就沒有了。
爲了能保存數據在docker中我們使用卷。
2,容器數據卷能做什麼
1,容器數據的持久化(如mysql的存儲文件)
2,容器之間繼承和共享數據
3,添加數據卷的方式
3.1直接使用命令添加
①語法
docker run -it -v /宿主機目錄:/容器內目錄 --privileged=true centos /bin/bash
②查看容器卷是否掛載成功
docker inspect 容器ID
③查看容器卷和宿主機的數據共享
在宿主機的mycentos001中創建hello.txt文件並寫入數據mycentos001
進入容器查看container001裏面有hello.txt文件數據和mycentos001裏面的一樣
注意:在以上的例子中,默認的只能在宿主機裏面寫數據。
如果出以下的問題
解決辦法:在掛載目錄後多加一個--privileged=true參數即可
④查看容器停止後,主機修改數據是否同步
⑤帶權限的處理方式
3.2使用DockerFile添加
①在宿主機的根目錄下創建mydocker文件夾並進入
②在當前目錄創建一個DockerFile的文件
③編寫DockerFile
FROM centos
VOLUME ["/dataContainer1","/dataContainer2"]
CMD echo "finished,--------success1"
CMD /bin/bash
④build生成一個新的鏡像
docker build -f /mydocker/DockerFile -t laolei/centos . #注意後面有一個點哦
⑤啓動容器
docker run -it --name='mycentos' laolei/centos
⑥查看容器裏面有兩個容器卷