快速入门Docker---Docker容器的数据卷和数据卷容器

版权声明:均是学习笔记、心得,如有冒犯,请指出,会及时处理。 https://blog.csdn.net/u013355826/article/details/79969805

Docker容器的数据卷

Docker的生存周期通常和其运行的程序相一致,但是对数据的要求是持久的,另一方面,dokcer容器之间也需要共享数据的渠道。

Data Volume是一种经过特殊处理的目录,可以绕过联合文件系统,为一个或多个容器提供服务。

Data Volume设计的目的在于数据的永久化,它完全独立与容器的生存周期,因此,Docker不会再容器删除时删除其挂载的数据卷,

也不会存在类似的垃圾回收机制,对容器引用的数据卷进行处理。

docker run -it -v [host-dir]:[containter-dir]:ro|rw
      host-dir:表示 Host上的目录,如果不存在,Docker会自动创建目录
      containter-dir:表示容器内部定义的目录,如果不存在,Docker会自动创建目录
      ro|rw :用于控制卷的读写权限


当不指定 host-dir时,从而在容器内部创建目录。
docker run -it -v /volumn centos  /bin/bash

实际上Docker会在Host的 /var/lib/docker/volumns 目录中随机的生存一个目录,然后去挂载 /volume。


通过Host访问容器中创建的 test 文件


这种方式创建的数据卷,如果没有别的容器引用这个数据卷,当容器删除后,对应的Host目录也会删除。【从书上看到的,但是自己试验的结果是这样子】

一样的方法创建了三个容器,在容器中都增加了数据卷,没有指定Host目录,把三个容器最后都删除掉后,查看/var/lib/docker/volumns。发现临时文件还存在。里边的数据还在。

指定Host目录

docker run -it --name test -v /datavolumn:/data centos /bin/bash

在容器的Data Volumn中写入数据

在Host中查看和Docker共享的数据

删除容器test 后,查看数据依然存在。


Docker的数据卷容器

一个命名的容器挂载数据卷,其它容器通过挂载这个容器实现数据共享,挂载数据卷的容器,就叫做数据卷容器。

如果用户想在容器之间共享一些持续更新的数据,最简单的方法是使用数据卷容器。数据卷容器其实就是一个普通的容器,专门用它提供数据卷供其它容器挂载使用。

docker run --volumes-from [CONTAINER NAME]
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页