Docker数据管理

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 目录。三个容器任何一个目录下的写入,都可以时时同步到另外两个

原文地址:https://www.cnblogs.com/kittywerwer/p/11742285.html