docker两种存储资源类型
用户在使用 Docker 的过程中,势必需要查看容器内应用产生的数据,或者需要将容器内数据进行备份,甚至多个容器之间进行数据共享,这必然会涉及到容器的数据管理
1)Data Volume (数据卷)
2)Data Volume Dontainers --- 数据卷容器
Data Volume (数据卷)
Data Volume 本质上是 Docker Host 文件系统中的目录或文件,使用类似与 Linux 下对目录或者文件进行 mount 操作。数据卷可以在容器之间共享和重用,对数据卷的更改会立马生效,对数据卷的更新不会影响镜像,卷会一直存在,直到没有容器使用
Data Volume 有以下特点:
a)Data Volume 是目录或文件,而非没有格式化的磁盘(块设备)。
b)容器可以读写 volume 中的数据。
c)volume 数据可以被永久的保存,即使使用它的容器已经销毁。
Data Volume的使用:
通过-v 参数格式为 <host path>:<container path>
a)运行一个容器,并创建一个数据卷挂载到容器的目录上
#docker run -dti -v /web centos:7.0 /bin/bash
b)运行一个容器,本地创建/date目录挂载到容器的/var/log/目录上
docker run -dti -v /data:/var/log centos:7.0 /bin/bash
Data Volume Dontainers --- 数据卷容器
如果用户需要在容器之间共享一些持续更新的数据,最简单的方法就是使用数据卷容器,其实数据卷容器就是一个普通的容器,只不过是专门用它提供数据卷供其他容器挂载使用
Data Volume Dontainers使用:
a)创建一个名为 dbdata 的数据卷,并在其中创建一个数据卷挂载到 /dbdata #docker run -dti -v /dbdata --name dbser centos:7.0
--name 参数为给容器指定名字为dbser方便记忆
b)其他容器使用--volume-from 去挂载dbser容器中的/dbdata数据卷
eg :创建 db1&db2 两个容器, 并挂载 /dbdata 数据卷到本地
#docker run -dti --volumes-from dbser --name db1 centos:7.0
#docker run -dti --volumes-from dbser --name db2 centos:7.0
此时,容器 db1 和 db2 同时挂载了同一个数据卷到本地相同 /dbdata 目录。三个容器任何一个目录下的写入,都可以时时同步到另外两个