宿主机进程挂载到容器内_Docker(十五)-Docker的数据管理(volume/bind mount/tmpfs)

如果你使用volumes的方式挂载了一个空的volume到某个容器的一个非空目录中,则这个非空目录中已存在的内容会被拷贝到这个volume中。类似的,如果在启动容器时指定了一个不存在的volume,一个空的volume会被自动创建;

如果使用bind mounts的方式挂载,或者用volumes的方式挂载了一个非空的volume到容器的一个非空目录中,则容器中这个非空目录下的内容将暂时被挂载过来的volume中的内容所覆盖(并未被删除),当取消挂载后,容器中那个非空目录中的文件仍然存在。就像在linux下的/mnt目录下如果存在一些文件,在把USB挂载到/mnt时,在/mnt下就只能看到USB中的内容而看不见原先的文件,当取消USB挂载后,再进入/mnt就可以看见原先的文件了。

选择使用 -v还是--mount

起初,-v或者--volume用于独立容器,--mount用于swarm services。然而,从Docker 17.06开始,也可是使用--mount用于独立容器。—mount命令更精准详细。-v将选项进行了合并。使用--mount。

如果你需要制定volume驱动选项,你必须使用 --mount。

-v或者--volume:由3部分参数组成,使用“:”间隔。顺序不能颠倒。

第一个部分是volumes名字,在宿主机上具有唯一性。匿名卷名字系统给出。

第二部分是挂载到容器里的文件或文件夹路径。

第三部分是可选项列表分隔符,例如“or”,这些可选项在下面会讨论。

—mount:由多个键值对组成,=。—mount要比-v或者--volume命令更长,但是更容易理解。

type,可以是bind,volume或者tmpfs。这篇文章主要讨论volumes,所以type一直使用volume.

source,volumes的名字,匿名volume可以省略。source可缩写为src.

destination,挂载到容器中的文件或目录路径。可也缩写为dst或者使用target。

readonly,指定挂载在容器中为只读。

volume-opt,可选属性,可以多次使用。

-v和--mount的不同行为

与bind mounts不同,对于—mount和-v所有的选项都可以使用。

当使用volumes服务时,只支持--mount.

创建和管理volumes

不像bind mount,你可以在容器外创建和管理volumes。

创建一个volume:

$ docker volume create my-vol

显示所有volumes

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值