目录
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
⑥查看容器里面有两个容器卷