您的位置:首页 > 运维架构 > Docker

docker数据管理

2017-03-12 10:51 288 查看
1. 挂载宿主机上面的目录到容器里(实现宿主机和容器数据共享)
docker run -tid -v /data/:/data aming bash //-v 用来指定挂载目录,:前面的/data/为本地目录,:后面的/data/为容器里的目录 (在启动容器的时候才能挂载)

例子:docker run -itd -v /data/:/data centos bash (centos 位image镜像的名字)

注意:不管是在docker容器里删除还是在宿主机上面删除,都会消失的,但是把整个dokcer容器给删除了,数据不会丢失的

2 定义数据卷容器

有时候,我们需要多个容器之间相互共享数据,类似于linux里面的NFS,所以就可以搭建一个专门的数据卷容器,然后其他容器直接挂载该数据卷。

首先建立数据卷容器

dockerrun -itd -v /data/ --name testvol aming/centos bash //注意这里的/data/是容器的/data目录,并非本地的/data/目录。

例子:docker run -itd -v /data/ --name hu centos bash
564c2b15b1aa8b9a492ca6ac65157aa3b9824ec0e48328feaeefd24658ba1772

说明:centos 是镜像的名字,hu是自定义的容器卷名字

然后让其他容器挂载该数据卷

docker run -itd --volumes-from testvol aming bash

例子:root@docker /]# docker run -itd --volumes-from hu cnetos-6-x86  bash
4147a90ed6d631577cc2f67f17915af2f413c74f32848c0310a12e36d672d693

说明:cnetos-6-x86 是镜像的名字 hu 必须跟上面的名字一样
上面的414这个容器已经挂载了上面容器卷的data目录

同一个镜像可以多次执行这个命令 ,每个生成的id都不一样

docker run -itd --volumes-from hu --name web1 cnetos-6-x86 bash
62d4e94ed8f35a6d9ee2c0798ac1841cc8d1afa8e236f2748ef23b7910a277b3

验证: 可以登录到一个容器里面看是否挂载上了 最后跟数据卷容器对比

docker exec -it 62d4e /bin/bash

3 备份容器里面的数据
mkdir/vol_data_backup ##在宿主机上面建立一个备份目录

docker run -itd --volumes-from testvol -v /vol_data_backup/:/backup centos bash

例子:[root@docker /]# docker run -itd --volumes-from hu -v /vol_data_backup/:/backup centos bash

##把宿主机上面的vol_data_backup 这个目录挂载到容器里面的back目录下并且同时把容器卷也挂载上(就是hu)
de35d1af7e2ad8bc8784005f41faca12df89de7056b5a8f9781f9b3cff66c7a4

tar cvf /backup/data.tar /data/ ##把data目录下的文件打包放到backup目录下,即会自动同步到宿主机上面的vol_data_backup 这个目录下即容器上面的数据会保存到宿主机上面

4 恢复数据到新容器
思路: 先新建一个数据卷容器,再建一个新的容器并挂载该数据卷容器,然后再把tar包解包。

新建数据卷容器:docker run -itd -v /data/ --name testvol2 centos bash (会产生一个新的容器卷)

例子:docker run -itd -v /data/ --name testvol2 centos bash

424b50ef2554067012301efaf94a711779c0419cee734886f3cae0487af6187f

挂载数据卷新建容器,并解包:

docker run -itd --volumes-from testvol2 -v /vol_data_backup/:/backup centos

##把原来宿主机上面的备份的那个目录挂载到新的容器里

tar xvf /backup/data.tar

也可以先登录到这个容器之中,然后在解压
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据 docker