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

4.docker数据卷管理

时间:2018-06-29 14:03:39      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:docke   latest   完成   bsp   没有   数据持久化   多个   ack   分享   

生产过程中使用docker往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,因此就需要数据卷来做数据持久化

*数据卷:容器内数据直接映射到本地主机环境

数据卷的特性:

1)可以在容器之间共享和重用,容器间传递数据变得高效方便

2)对数据卷内数据的修改会立马生效,无论是容器内操作还是本地操作

3)对数据卷的更新不会影响镜像,解耦了应用和数据

4)卷会一直存在,直到没有容器使用,可以安全地卸载它

创建数据卷

docker run -it --name web -v ~/webapp:/webapp ubuntu:latest /bin/bash

本地目录必须是绝对路径,如果目录不存在docker会自动创建

修改数据卷的权限,默认是rw(读写),ro(只读)

docker run -it --name web -v ~/webapp:/webapp:ro ubuntu:latest /bin/bash

 

*数据卷容器

创建数据卷容器:

docker run -it --volumes-from web --name web2 ubuntu

可以多次使用--volumes-from参数来从多个容器挂载多个数据卷。

还可以从其他已经挂载了容器卷的容器来挂载数据卷

如果删除了挂载数据卷的容器,数据卷并不会自动删除。

如果要删除一个数据卷,必须在最后一个还挂载着它的容器显式

使用docker rm -v命令指定同时删除关联的容器

技术分享图片

*docker数据卷备份
mkdir backup &&cd backup #在物理机上创建backup目录
docker run --volumes-from webapp -v $(pwd):/backup --name worker ubuntu
tar cvf /backup/backup.tar /webapp
#这个命令的原理是:新创建一个容器worker,连接了数据卷容器webapp,并将物理机backup目录映射到worker的/backup,
然后tar命令就将数据卷webapp的/webapp目录打包到/backup-->物理机backup目录

*docker数据卷还原到其他容器
先建立一个新容器
docker run -it -v /webapp --name db1 ubuntu /bin/bash
相同的原理,新建一个容器worker1,连接了数据卷容器db1,映射了物理机backup目录到worker1的/backup目录,tar命令将
备份包还原到db1的/webapp下,完成还原
docker run --volumes-from db1 --name worker1 -v $(pwd):/backup ubuntu tar xvf /backup/backup.tar

如果还原到原容器
 docker run --volumes-from webapp -v $(pwd):/backup ubuntu tar xvf /backup/backup.tar

 

技术分享图片

4.docker数据卷管理

标签:docke   latest   完成   bsp   没有   数据持久化   多个   ack   分享   

原文地址:https://www.cnblogs.com/soulmates/p/9242836.html

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