Bind:将主机目录/文件直接挂载到容器内部。
需要使用主机的上的绝对路径,且可以自动创建主机目录;
容器可以修改挂载目录下的任何文件,是应用更具有便捷性,但也带来了安全隐患。
Volume:使用第三方数据卷的时候使用这种方式。
Volume命令行指令:docker volume (create/rm);
是Docker提供的功能,所以在非 docker 环境下无法使用;
分为命名数据卷和匿名数据卷,其实现是一致的,区别是匿名数据卷的名字为随机码;
支持数据卷驱动扩展,实现更多外部存储类型的接入。
Tmpfs:非持久化的卷类型,存储在内存中。
数据易丢失。
Bind挂载语法
-v: src:dst:opts 只支持单机版。
Src:表示卷映射源,主机目录或文件,需要是绝对地址;
Dst:容器内目标挂载地址;
Opts:可选,挂载属性:ro, consistent, delegated, cached, z, Z;
Consistent, delegated, cached:为mac系统配置共享传播属性;
Z、z:配置主机目录的selinux label。
示例:
- $ docker run -d –name devtest -v /home:/data:ro,rslave nginx
- $ docker run -d –name devtest –mount type=bind,source=/home,target=/data,readonly,bind-propagation=rslave nginx
- $ docker run -d –name devtest -v /home:/data:z nginx