卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union File System提供些用于持续存储或共享数据的特性:
卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。
卷的用途就是将Docker内的数据保存到宿主机的磁盘中
**docker run -v 宿主机路径:容器内路径[:读写权限] --privileged=true [其它参数] image
- 读写权限 是对容器内的限制,默认为rw 可读可写,其它可选值还有ro 只读
- –privileged=true,设置为true, container内的root拥有真正的root权限,否则,container内的root只是外部的一个普通用户权限,建议加上,否则可能会出现:“ cannot open directory .: Permission denied”
如果是CentOS7安全模块会比之前系统版本加强,不安全的会先禁止,所以目录挂载的情况被默认为不安全的行为,ESELinux里面挂载目录被禁止掉了额,如果要开启,我们一般使用-privleged=true命令,扩大容器的权限解决挂载目录没有权限的问题,也即**使用该参数,container内的root拥有真正的root权限,否则,container内的root只是外部的一个普通用户权限。
挂载后,
1 docker修改挂载文件、目录,主机同步获得
2 主机修改挂载文件、目录,docker同步获得
3 docker容器stdp,主机修改,docker容器重启数据自动同步。
docker inspect c72#(容器ID)
#查看输出的Mounts 部分 Source 宿主机路径,Destination 容器内路径
"Mounts": [
{
"Type": "bind",
"Source": "/tmp/dockerubuntu",
"Destination": "/tmp/data",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],
docker run -v 宿主机路径:容器内路径[:读写权限] --privileged=true [其它参数] image
启动时加参数
–volumes-from 父类容器ID
其实质就是: -v 父类容器ID的挂载规则 ,容器移动后 跟父容器除挂载目录一样外并无其它关系