码迷,mamicode.com
首页 > 其他好文 > 详细

Docker 数据管理

时间:2015-07-30 23:43:35      阅读:268      评论:0      收藏:0      [点我收藏+]

标签:docker 数据管理

Docker 数据管理

数据卷

数据卷是一个可供一个或多个容器使用的特殊目,它绕过 UFS,可以提供很多有用的特性:

  1. 1.  数据卷可以在容器之共享和重用

  2. 2.  数据卷的修改会立生效

  3. 3.  数据卷的更新,不会影响镜

  4. 4.  卷会一直存在,直到没有容器使用

挂载本地目录到容器

建一个数据卷

在用 docker run 命令的候,使用 -v 标记建一个数据卷并挂到容器里。在一次 run 中多次使用可以挂多个数据卷。

#sudo docker run -it -v ~/data:/data --namedv1 centos-sshd:v1 /bin/bash

-v是挂载项,家目录下的data目录挂载到容器的跟目录的data下 --name起一个名字

 技术分享

在data下创建一个叫a.txt的文件

技术分享

如图,家目录的data文件下已经有我们创建的a.txt

技术分享

使用dockerfile挂载

技术分享

编辑dockerfile

技术分享

如图成功挂载data0

技术分享

权限的限制,在之前挂载目录下只需要加上ro就可以变成只读权限了,如图

#sudo docker run -it -v ~/data:/data:ro--name dv0 centos-sshd:v1 /bin/bash

技术分享

使用#sudo docker inspect命令查看,可以看到已挂载,权限为只读

技术分享

数据卷容器

如果你有一些持更新的数据需要在容器之共享,最好建数据卷容器。

数据卷容器,其就是一个正常的容器,专门用来提供数据卷供其它容器挂的。

我们先启动一个容器dv1,并挂载mydata  使用-v现选项

#sudo docker run -it -v /mydata --name dv1dkv 

技术分享

 

然后添加一个数据卷 使用命令--volumes-from,来读取dv1中的数据

#sudo docker run -it --volumes-from dv1 --name dv2 dkv

技术分享

我们查看下当前挂载的容器。并关闭dv1

技术分享

启动dv2,再次查看数据发现数据卷还在 为什么?

这是因为如果除了挂的容器,数据卷并不会被自动删除。如果要除一个数据卷,必除最后一个着它的容器使用 docker rm -v 命令来指定同时删除关的容器。 可以在容器之和移数据卷。技术分享

利用数据卷容器来份、恢复、迁移数据卷

备份

#sudo docker run --volumes-from dv1 -v~/backup:/backup dkv  tar cvf/backup/backup.tar  /mydata

技术分享

已经备份完毕

技术分享

恢复

我们先删除dv1dv2 然后创建一个dv3

技术分享

开始还原数据

# sudo docker run --volumes-from dv3 -v~/backup:/backup dkv tar xvf /backup/backup.tar

技术分享

再次查看发现数据已经还原回来

技术分享

本章教程到此结束,下节主要介绍docker网络

 

 

 


本文出自 “linux 虚拟化” 博客,请务必保留此出处http://itjcw.blog.51cto.com/3428881/1680151

Docker 数据管理

标签:docker 数据管理

原文地址:http://itjcw.blog.51cto.com/3428881/1680151

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!