docker managed volume
与 bind mount 在最大区别是不需要指定 mount 源,指明 mount point 就行了
通过 -v 告诉 docker 需要一个 data volume
docker inspect 的输出中 Mounts 的部分,显示容器当前使用的所有 data volume,包括 bind mount 和 docker managed volume。
使用 docker inspect 391332c77cdf 查看下 Mounts 的信息
Source 就是该 volume 在 host 上的目录
每当容器申请 mount docker manged volume 时,docker 都会在/var/lib/docker/volumes 下生成一个目录,这个目录就是 mount 源,这个目录下都有这些文件:
volume 的内容跟容器原有 /usr/local/apache2/htdocs 完全一样的,是因为mount point 指向的是已有目录,原有数据会被复制到 volume 中。
此时的 /usr/local/apache2/htdocs 已经不再是由 storage driver 管理的层数据了,它已经是一个 data volume。我们可以像 bind mount 一样对数据进行操作,例如更新数据
除了通过 docker inspect 查看 volume,我们也可以用 docker volume 命令:
缺点:
docker volume 只能查看 docker managed volume,还看不到 bind mount;同时也无法知道 volume 对应的容器,这些信息还得靠docker inspect。
两种 data volume 的原理和基本使用方法的对比:
相同点:
两者都是 host 文件系统中的某个路径。
不同点:
------------------------------------------------------引用来自------------------------------------------------------------------
https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587715&idx=1&sn=0150db66fdedada0c28b7d08e0fb99b3&chksm=8d30811aba47080c9d086e98679e53b397beed1565cc5f63992a9cc8a959e04b63ced6e90894&scene=21#wechat_redirect