docker定义数据卷及数据卷的备份恢复
前言:生产环境中使用docker时,往往需要对数据进行持久化(只有把容器导出为镜像,才能够保存写的数据,否则容器删除或者停止,所有数据都会没有),或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作
容器中管理数据主要有两种方式:
1、数据卷:容器内数据直接映射到本地主机环境
2、数据卷容器:使用特定容器维护数据卷。能在容器和主机、容器和容器之间共享数据,并实现数据的备份和恢复。
本博客主要围绕数据卷容器进行开展~~~
一、定义数据卷容器
搭建一个专门的数据卷容器,然后其他容器直接挂载该数据卷,实现多个容器之间共享数据(类似NFS)
1、docker images 查看现有的镜像

2、用镜像 install_net,建立数据卷容器 windysai
docker run -itd -v /data/docker/ --name windysai install_net bash
(1)-v /data/docker/ :容器里面
(2)windysai 名字任意
3、进入windysai容器
docker exec -it windysai bash
——》会发现容器里面多了一个 /data/docker 的目录
4、用 centos-6-x86_64 挂载windysai数据卷
docker run -itd --volumes-from windysai centos-6-x86_64 bash

(1)进去容器:docker exec -it dfdbe7e8b64 bash
发现存在数据卷容器的目录 /data/docker
(2)测试
mkdir /data/docker/test; touch /data/docker/ljy.txt
5、重新进入windysai 容器里
ls /data/docker 有 test 目录和文件 ljy.txt

二、数据卷备份(画了个图才比较好理解 = =)
如果做了数据卷(容器内数据直接映射到本地主机环境),那就没必要做数据卷的备份,只要定时备份服务器硬盘的数据就行
如果没有做映射 ——》做数据卷的备份
【1】备份
思路:
使用上面的windysai数据卷新开一个容器,同时把本地的 /vol_data_backup/ 目录挂载到该容器的 /backup 下,这样在容器中 /backup 目录里面新建的文件,就可以直接在/vol_data_backup/ 目录中看到了;最后再把 /data/ 目录下面的文件打包成 data.tar,放到 /backupx 下面

1、在宿主机的磁盘上,创建要备份数据的目录
mkdir /vol_data_backup
2、新建容器,挂在数据卷(共享数据卷 windysai 的/data/docker 目录)
docker run -itd --volumes-from windysai -v /vol_data_backup/:/backup centos-6-x86_64 bash
(1)centos-6-x86_64:新容器
(2)/backup:映射到容器里面的目录

3、docker exec -it 2b6960b5 bash
(1)看到 /backup 为空
(2)/data/docker 存在数据卷分享出来的目录,也就是我们要备份的目录

(3)备份
tar -cvf /backup/data.tar /data/docker/

4、退出容器exit,查看宿主机目录

三、数据卷恢复
思路:先新建一个数据卷容器,再建一个新的容器饼挂载该数据卷容器,然后再把 tar 包解包
1、新建第二个数据卷容器
docker run -itd -v /data/docker/ --name second install_net bash

2、挂载数据卷,新建容器
docker run -itd --volumes-from second -v /vol_data_backup/:/backup install_net

3、进入容器
docker exec -it da94996d1 bash, ls /bacukup/

4、在根目录下解压
cd /
tar xvf /backup/data_20190110.tar


docker定义数据卷及数据卷的备份恢复的更多相关文章
- docker挂载本地目录和数据卷容器
1.docker挂载本地目录 docker可以支持把一个宿主机上的目录挂载到镜像里. 交互模式运行docker run -it -v /home/dock/Downloads:/usr/Downloa ...
- 聊聊Docker数据卷和数据卷容器
当程序在容器运行的时候,特别是需要与其他容器中的程序或容器外部程序进行沟通交流,这时需要进行数据交换,作为常用的两种沟通数据的方式,网络通信与文件读写是需要提供给程序的支持, [数据卷] 文件是数据持 ...
- Docker容器学习梳理 - Volume数据卷使用
之前部署了Docker容器学习梳理--基础环境安装,接下来看看Docker Volume的使用. Docker volume使用 Docker中的数据可以存储在类似于虚拟机磁盘的介质中,在Docker ...
- Docker数据卷和数据卷容器
是什么 数据卷设计的目的,在于数据的永久化,他完全独立于容器的生存周期,因此,Docker不会在容器删除时删除其挂载的数据卷,也不会存在类似的垃圾收集机制对容器引用的数据卷进行处理.类似我们Redis ...
- Docker-数据卷和数据容器卷
容器中管理数据主要有两种方式: 数据卷(Data Volumes) 数据卷容器(Data Volumes Dontainers) 数据卷 使用-v可以挂载一个本地的目录到容器中作为数据卷. [root ...
- docker--数据卷与数据卷容器
docker--数据卷与数据卷容器 1.数据卷: 创建一个volumes的文件夹: [root@docker01 /]# mkdir volumes [root@docker01 /]# ls bin ...
- docker(5):数据的管理
Docker的volume卷 为了能持久话保存和共享容器的数据. 使用docker volume卷的两种方式 1:数据卷 2:数据卷容器 1:数据卷 数据卷:数据卷会绕过docker 的ufs 直接写 ...
- Docker集群管理Swarm数据持久化
一.前言 和docker容器一样,Swarm集群中运行的服务也能够做数据持久化.我们可以通过volume.bind和nfs等方式来实现swarm集群应用数据的持久化.其实和docker数据持久化的形式 ...
- docker中mysql数据库的数据导入和导出
导出数据 查看下 mysql 运行名称 docker ps 结果:  执行导出(备份)数据库命令: 由第一步的结果可知,我们的 mysql 运行在一个叫 mysql_server 的 docker ...
- sql 两大类 DDL数据定义语言 和DCL数据控制语言
SQL分为五大类: DDL:数据定义语言 DCL:数据控制语言 DML:数据的操纵语言 DTL:数据事务语言 DQL:数据查询语言. DDL (date definition lang ...
随机推荐
- canvas基本使用
1.什么是CANVAS canvas是html5新增的画布元素,可以通过javascript来在画布上绘制图形,图标以及任何视觉性的图像. 2.canvas的用途 替代flash,做各种动态效果,做小 ...
- apktool 工具
下载 https://code.google.com/p/android-apktool/ apktool_2.0.0rc2.jar 和apktool linux脚本 ln –s apktool_ ...
- 页面的日志服务 web页面渲染 服务 ; 服务耦合带来的问题
情景: 虽然对web服务做了3节点的负载均衡,但是由于埋点数据的落盘的代码也在相同服务器上,导致当flume处理日志的吞吐量达到瓶颈时,3节点的请求积压,挤占服务器资源,导致接口数据处理迟缓,页面加载 ...
- 初探runtime
1 简介 runtime,也叫它运行时系统.它是用c写的一套API,oc代码底层实现全都依赖它.我们说它是运行时,是相比编译,在程序编译完成之后,一些对象可通过runtime来干一些在编译时看似不可能 ...
- Akka Essentials - 1
参考Akka Essentials 1 Introduction to Akka Actor Model Actor模式的由来 In 1973, Carl Hewitt, Peter Bishop ...
- IIS 部署WCF时遇到这么个错:
转(http://blog.csdn.net/vic0228/article/details/48806405) 部署WCF时遇到这么个错: "The service cannot be a ...
- Charles抓包工具简单操作
一.界面介绍 1.功能是clear,清理掉所有请求显示信息. 2.功能是搜索关键字,也可以使用ctrl+f实现,可以设置搜索的范围 3.功能是开始或暂停 4.显示所抓取的数据包 5.抓取数据包的请求及 ...
- nodejs使用——以elasticsearch-exporter为例
安装nodejs: yum install nodejs 运行node命令查看是否安装成功: 可以看到成功进入命令行,安装成功. node命令前面要加点,使用 .help 查看有哪些命令: 使用.ex ...
- 缓存在中间件中的应用机制(Django)
缓存在中间件中的应用机制(Django) (右键图片:在新标签页中打开连接)
- Django框架错误处理
错误处理 在一些网站开发中.经常会需要捕获一些错误,然后将这些错误返回比较优美的界面,或者是将这个错误的请求做一些日志保存.那么我们本节就来讲讲如何实现. 常用的错误码: 404:服务器没有指定的ur ...