Docker数据管理(一)
数据卷挂载
在生产环境中,需要对数据进行持久化,冗余化,或者在需要在多个容器之间进行数据共享
数据卷:容器内数据直接映射到本地主机环境
数据卷容器:使同特定容器维护数据卷
-v 进行映射
1.在容器内生成一个数据卷
docker run -id --rm --name dbdata -v dbdata docker.io/busybox
2.挂载主机目录作为数据卷, 将webroot挂载到容器的test中(绝对路径)
docker run -id --rm --name -P web -v /root/webroot:/test docker.io/busybox
3.挂载一个本机文件作为数据卷, 将web.xml挂载到容器的test中(不推荐)
docker run -id --rm --name -P web -v /root/web.xml:/test docker.io/busybox
总结:
如果使用文件挂载,当使用vim或者sed --in-place时候,可能造成inode改变,所以不推荐以文件挂载
数据卷容器
生成一个专门放数据的容器,这个数据卷容器可以在多个容器之间共享一些持续更行的数据
1.生成数据卷容器
docker run -it --name dbdata -v /dbdata docker.io/busybox
查看结果
/ # ls
bin dbdata dev etc home proc root run sys tmp usr var
2.创建其他容器,其实可用到 --volumes-from来挂载dbdata容器中的数据卷
docker run -it --name web1 --volumes-from dbdata docker.io/busybox
docker run -it --name web2 --volumes-from dbdata docker.io/busybox
在其中一个容器中创建一个文件,可以在另外两个看到
总结:
可以多次使用--volumes-from来挂载dbdata,也可以从其他已经挂载的容器卷的容器挂载数据卷
如果删除了挂载的容器(包括dbdata,web1,web2),数据卷并不会被删除.只有删除最后一个还挂载着它的容器 显示使用docker rm -v 命令来指定 同时删除关联的容器
利用数据卷来迁移数据
利用数据容器对其中的数据卷进行备份,恢复以实现数据迁移
1.备份
docker run --volumes-from dbdata -v /root/back:/backup --name back docker.io/busybox tar -cvf /backup/backup.tar /dbdata
利用目录挂载,就可以把备份放到物理机的/root/back里了
2.恢复
docker run --volumes-from dbdata -v /root/back:/backup --name recover docker.io/busybox tar -xvf /backup/backup.tar
总结:
通过数据卷和数据卷容器对容器内数据进行共享,备份,恢复等操作,即使出现了运行故障,用户也不必担心数据丢失,只需要快速创建容器即可
在生产环境中,定期在物理机上进行数据备份,使用支持容错的存储系统(RAID,分布式文件系统{Ceph,GPFS,HDFS}).可以大大提升数据安全
入门容器操作见https://blog.csdn.net/Nedved_L/article/details/79067732
Docker数据管理(一)的更多相关文章
- Docker数据管理(四)
Docker数据管理 Docker数据分为两种: 数据卷 -v /data -v src:dst 数据卷容器 --volumes-from 数据卷 案例1:我们创建一个容器,起名叫nginx-volu ...
- Docker数据管理
用户在使用Docker的过程中,往往需要能查看容器内应用产生的数据,或者需要把容器内的数据进行备份,甚至多个容器之间进行数据共享,这必然涉及到Docker的数据管理. 容器中管理数据主要有两种方式: ...
- Docker系统七:Docker数据管理
Docker的数据管理 I. 基本概念 Docker容器一旦删除,其相关的rootf文件系统就会被删除,其容器内的数据将一并删除,为了保存相关数据,Docker提出了数据卷的概念. II. 数据卷 D ...
- Docker数据管理(五)
一.什么是数据卷 生成环境中使用docker的过程中,往往需要对数据进行持久化,或者需要多个容器之间进行数据共享,这个就涉及到了容器数据管理 容器中管理数据主要有两种方式: 数据卷:容器内数据之间映射 ...
- Docker数据管理(数据卷&数据卷容器)
生产环境中使用Docker的过程中,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作. 容器中管理数据主要有两种方式: 数据卷(Data Volumes):容 ...
- Docker实战(四)之Docker数据管理
在生产环境中使用Docker的过程中,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及到容器的数据管理操作. 容器中管理数据主要有两种形式: 数据卷:容器内数据直接映射到本地主 ...
- 【Docker】第五篇 Docker 数据管理
一.基本介绍 数据管理的原因:Docker中的容器一旦删除,容器本身的rootfs文件系统就会被删除,容器中的所有数据就会被删除.为了对一些需要持久化的数据,不随容器删除而删除,所以我们可以通过多个容 ...
- <Docker学习>5. docker数据管理
当我们创建了一个tomcat容器,如何简单部署一个web应用?如何将war包放入到容器中?也就是说怎么样把文件从宿主机中 "放入" 到容器中? docker cp命令可以将宿主机本 ...
- docker数据管理(2)
一.docker存储资源类型 docker两种存储资源类型 用户在使用 Docker 的过程中,势必需要查看容器内应用产生的数据,或者需要将容器内数据进行备份,甚至多个容器之间进行数据共享,这必然会涉 ...
- 六、【Docker笔记】Docker数据管理
前几节我们介绍了Docker的基本使用和三大核心概念,那么我们在使用Docker的过程中,Docker中必然产生了大量的数据,对于这些数据我们需要查看或者对这些数据进行一个备份,也有可能容器之间的数据 ...
随机推荐
- C#中的字符串处理
C#中的字符串处理 是由多个单个字符组成的.字符串的关键字是string,而我们单个字符char型.也就是一个字符串可以分为很多个char的字符.注意 同时,我们在开发项目或者学习时.更多的操作不是数 ...
- Innodb的三大关健特性
今天看<MySql技术内幕InnoDB存储引擎>一书,学习了Mysql的三大关健特性,并记录如下: 插入缓冲 双写(double write) 自适应Hash索引 在记录这些特性之前,先对 ...
- 2.Metasploit数据库配置及扫描模块介绍
01.Metasploit数据库配置及扫描模块介绍 信息收集 信息收集是渗透测试中首先要做的重要事项之一,目的是尽可能多的查找关于目标的信息,我们掌握的信息越多,渗透成功的机会越大.在信息 ...
- Aircoinst 三层架构ASP.NET开源
<注意! 本源码为我本人所写,可能有点烂.仅供学习使用,请勿进行商业用途~!> <本源码永久归于MineLSG 及 Aircoinst_慈 所拥有> 使用方法:直接拷贝 一.结 ...
- 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\vue.ps1,因为在此系统··········
网上百度了下,解决方案是: 1. 以管理员身份运行PowerShell2. 执行:get-ExecutionPolicy,回复Restricted,表示状态是禁止的3.执行:set-Execution ...
- python学习要点(二)
我的博客:https://www.luozhiyun.com/archives/269 '==' VS 'is' '=='操作符比较对象之间的值是否相等. 'is'操作符比较的是对象的身份标识是否相等 ...
- Nginx知多少系列之(三)配置文件详解
目录 1.前言 2.安装 3.配置文件详解 4.Linux下托管.NET Core项目 5.Linux下.NET Core项目负载均衡 6.Linux下.NET Core项目Nginx+Keepali ...
- MySql 存储过程分页。
use address;drop procedure if exists `proc_s_area_code`;delimiter // #告诉mysql解释器,该段命令是否已经结束了,mysql是否 ...
- flaks-自定义url转换器
flaks-自定义url转换器 from flask import Flask, url_for from werkzeug.routing import BaseConverter app = Fl ...
- 在MAC上如何使用SQL Server
由于小编在这学期要学习数据库原理这门课程,需要用到SQL Server,然而大家都知道SQL Server目前是只能在Windows上使用,我们在mac电脑上如何使用呢?我们可以借助目前比较火的Doc ...