Docker存储卷(volume)

早过忘川 提交于 2020-03-01 03:49:43

Docker存储卷(volume)

volume存储卷 : 是容器上的一个或多个"目录",此类目录可绕过联合文件系统,与宿主机上的某目录"绑定(关联)"

docker中分为2种类型的卷:
		1.Bind mount volume (绑定挂载卷:在宿主机跟容器内部创建特定路径,让2个已知路径建立关联关系)
  	     2.Docker-managed volume(docker管理的卷:需在容器内部制定容器挂载目录,被绑定的宿主机目录(这个 宿主机目录是docker daemon自助创建的以docker id号为结尾的 ,是docker内部自己来维护的))

在容器中使用volume 为docker run命令使用 -V 选项即可使用Volume

1.docker -managed volume
#docker run -it --name bbox1 -v /data busybox
#docker inspect -f {{.Mounts}} bbox1

查看bbox1容器的卷,卷标识符及挂载的主机目录

2.Bind-Mount volume

#docker run -it -v HOSTDIR:VOLUMEDIR --name bbox2 busybox(HOSTDIR是宿主机目录,VOLUMEDIR是容器中的目录)

#docker inspect -f {{.Mount}} bbox2

例子1:

在这里插入图片描述

docker inspect b1

在这里插入图片描述
找到Mounts这一块儿查看当前宿主机关联路径
在这里插入图片描述
在容器里面做个测试,进入data目录,然后创建一个测试文件
在这里插入图片描述
进入宿主机然后找到关联目录进去
在这里插入图片描述

例子2(绑定挂载卷):

在这里插入图片描述

docker inspect b2

查看Mounts这一块儿查看当前宿主机关联路径
在这里插入图片描述
进入这个/data/volume/b1 目录
在这里插入图片描述
退出去,因为加了-rm参数,容器停止就自动删除,但是删除容器之后之前运行的容器与宿主机关联的目录依旧存在(体现了volume的持久挂载功能)
在这里插入图片描述

建立共享存储卷

建立容器b3 ,设关联宿主机目录为/data/volume/b2(跟上述容器b2关联宿主机一样)
在这里插入图片描述
进入关联的宿主机目录

在这里插入图片描述
进入容器b2查看目录,由此可见多容器可共享一个卷
在这里插入图片描述

docker inspect -f {{.Mount}} b2

-f (过滤出.mounts里面想要的内容)截图如下
在这里插入图片描述
复制使用其他容器的卷,为docker 润命令使用-- volumes-from选项

#docker run -it --name bbox1 -v /docker/volumes/v1:/data busybox
#docker run -it --name bbox2 --volumes-from bbox1 buxybox

例子3:

容器infracon
在这里插入图片描述
复制容器infracon使用的卷
在这里插入图片描述
查看到infracon的ip地址为
在这里插入图片描述
关联的相应目录如图:
在这里插入图片描述
ngixn1的相应目录为:
在这里插入图片描述
因为是复制使用infracon容器,所以nginx1的关联目录跟infracon是一样的

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!