第 6 章 存储 - 040 - docker managed volume

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

posted @ 2019-03-01 13:32  gsophy  阅读(238)  评论(0编辑  收藏  举报