Docker容器数据卷详解
Docker将运用与运行的环境打包形成容器运行, Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据做为镜像的一部分保存下来, 那么当容器删除后,数据自然也就没有了。 为了能保存数据在Docker中我们使用卷。|
卷就是目录或文件,存在于一个或多个容器中,由Docker挂载到容器,但卷不属于联合文件系统(Union FileSystem),因此能够绕过联合文件系统提供一些用于持续存储或共享数据的特性:。
卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。
==总结:容器和主机共享目录。==
数据卷的特点:
#运行时配置命令 -v docker run -it -v 主机目录:容器目录 容器id /bin/bash #验证 docker inspect 容器id mounts写的挂在信息
就是指定文件夹名称,区别于指定路径挂载,这里的指定文件夹名称是在Docker指定的默认数据卷路径下的。通过docker volume ls命令可以查看当前数据卷的目录情况
查看指定的数据卷信息的命令:docker volume inspect 数据卷名称
匿名挂载就是在指定数据卷的时候,不指定容器路径对应的主机路径,这样对应映射的主机路径就是默认的路径/var/lib/docker/volumes/中自动生成一个随机命名的文件夹。
所有的docker容器内的卷,没有指定目录的情况下都是在 ==/var/lib/docker/volumes/xxxx/_data==
我们通过具名挂载可以方便的找到我们的一个卷,大多数情况在使用的
==具名挂载==
# 如何确定是具名挂载还是匿名挂载,还是指定路径挂载! -v 容器内路径 #匿名挂载 -v 卷名:容器内路径 #具名挂载 -v /宿主机路径:容器内路径 #指定路径挂载!
拓展:
# 通过-v客器内路径:ro rw改变读写权限 ro readonly # 只读 rw readwrite # 可读可写 # 一旦这个了设置了容器权限,容器对我们挂载出来的内容就有限定了! docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:ro nginx docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:rw nginx # ro只要看到ro就说明这个路径只能通过宿主机来操作,容器内部是无法操作!
本文作者:酷少少
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!