简介
数据管理主要针对数据持久化、多容器之间的数据共享和数据的备份和恢复。数据管理主要有两种方式:
- 数据卷:容器内数据直接映射到本地主机环境
- 数据卷容器:使用特定容器维护数据卷
数据卷
基本属性:可供容器使用的特殊目录,直接把主机操作系统的目录直接映射进容器。
数据卷有如下的几个特性,类似linux的mount:
创建的例子:
docker volume create -d local test
这相当于在/var/lib/docker/volumes
的目录下新建了test的volume,-d
是后台执行的命令,其他的参考手册即可。
create
:Create a volumeinspect
:Display detailed information on one or more volumesls
:List volumesprune
:Remove all unused local volumesrm
:Remove one or more volumes
**绑定数据卷:**把主机本地的任意路径挂载到容器内作为数据卷。
绑定数据卷在执行run
命令的添加-mount
参数,有3个类型的数据卷,分别是:
volume
:普通数据卷,映射到/var/lib/docker/volumes
目录下bind
:绑定数据卷,映射到主机指定路径下tmpfs
:临时数据卷,只存在与内存中
以Ubuntu的镜像为例子,创建2个不同的ubuntu容器,绑定主机的目录作为volume,然后分别进入自己的终端,并创建不同的文件;创建后,文件会在主机的目录中生成。同时,这些文件是共享的,具体参看下图:
此时查看容器的状态,都是退出的:
数据卷容器
基本属性:用于在多个容器之间共享一些持续更新的数据,本身也是容器,提供数据卷给其他容器挂载。这和上一小节的两个ubuntu共享数据类似,不过是更换了关键字,使用volumes-from
关键字来获取有关的数据
利用数据卷容器进行数据的迁移和备份
docker run -volumes-from dbdata -v $ (pwd) : /backup --name worker ubuntu tar cvf /backup/backup.tar /dbdata