Docker的volume卷 为了能持久话保存和共享容器的数据。

  使用docker volume卷的两种方式

  1:数据卷

  2:数据卷容器

1:数据卷

数据卷:数据卷会绕过docker 的ufs 直接写在物理设备上,对数据卷的操作可以及时生效,并且数据卷是可以进行共享重用的,为一个或者多个容器提供访问。数据卷的存在的目的在于永久话保存docker的数据,数据卷独立于容器的生命周期之外。不会因docker的变化儿产生变化

  (1):挂载一个随机名称的目录

  我们在运行容器的时候 通过使用  -V 来添加 数据卷,也可以多次指定挂载多个。

运行一个主机名为 centos1 容器名为centos1 的容器

docker run  -it -v /data -h centos1  --name centos1 centos

  注:-v /data 我们挂载了一个名为data的数据卷 (-h centos1) 指定主机名

  

  使用-v 时 docker 守护进程会自动帮助我们创建一个data文件.这时的data文件其实挂载了宿主机的文件我们来查看一下宿主机文件的地址:

  推出容器查看centos1 的 配置信息

docker inspect centos1  找到Mounts 节点

  

  Source 这里就是对应的宿主机目录随机了一个名称:默认是可读写的,我们不论是在宿主机中还是在容器写入的任何信息,两边都可以进行查看。Volume 就是docker 的卷,代表目录或者文件。

因为这里的卷是挂载的宿主机的文件,所以不会随着容器的销毁而销毁.

  (2)挂载一个宿主机的文件或目录

  docker run -it -v /var/lib/docker/volumes:/volumes -h centos2 --name centos2 centos

  -v /var/lib/docker/volumes:/volumes

  上面的命令挂载了宿主机 /var/lib/docker/volumes 文件路径:/volumes 容器的路径。

  

  看到已经挂载成功了,我们可以看多个容器我们可以共用一个文件。这样就可以避免我们的数据配置。。。信息丢失,比如我们可以分成存放 程序,日志,配置等信息

  -v /var/lib/docker/volumes:/volumes:ro 可以设置只读,默认是 rw读写

2:数据卷容器

  

  (1):使用数据卷:

  我们运行一个名为Centos3的容器,并且centos2 作为一个数据卷容器

  docker run -it  --volumes-from centos2 -h centos3 --name centos3 centos

参数: --volumes-from   centos2  指定一个卷容器。

  运行成功后我们查看一下centos3 是否共享了数据卷容器centos2的卷

  

  上图中我们可以看到,centos3和centos2共用了卷。

  为什么使用数据卷:

  在生产测试环境中我们在使用的时候可以只创建一个容器,不运行任何程序,此容器的作用就是为了共享数据卷。这个容器就被称为数据卷容器。

  注意:在删除挂载有数据卷容器的时候我们要加上 -v 选项 ,这样才会删除数据卷,不然出来不会删除外,还会浪费磁盘空间

   例如:Docker rm -v centos3 当我们删除centos3 的时候,他使用的数据卷是不会被删除的,因为当一个数据卷在被其他容器使用的时候是不会被删除的。

  (2):数据卷的备份

  数据卷的备份是通过启动一个新的容器,在新的容器中执行打包压缩命令,来实现备份操作的。也就是说这个容器是可以执行后立即删除的

  执行下面的命令进行备份:

  docker run --rm --volumes-from centos2 -v /backup:/backup centos tar cvf /backup/volume.tar /volumes

  

  备份完成我们查找一下备份

  

  查看容器是否存在:

  

  我们可以看到当容器执行完命令后就删除了

  命令选项作用:

  --rm            :容器运行后删除

  --volumes-from centos2      :备份数据卷容器挂载的所有数据卷

  -v /backup:/backup             :  备份后存放的地址

  tar cvf /backup/volume.tar  :执行备份并且指定备份的名称

  /volumes       :数据卷容器centos2  挂载的数据卷目录

有不足之处 希望大家指出相互学习,

            本文原创:转载请注明出处 谢谢!

docker(5):数据的管理的更多相关文章

  1. docker之数据卷管理

    转自:https://www.cnblogs.com/jsonhc/p/7777811.html docker之数据卷的备份和还原 1.现在利用镜像创建一个nginx的服务容器,并挂载一个数据卷 [r ...

  2. docker 应用数据的管理

    容器数据存储的三种方式 docker volume docker管理素质及文件系统的一部分,保存数据最佳方式 bind mounts   将宿主机的文件映射到容器里 tmpfs   存储在宿主机的内存 ...

  3. docker 应用数据的管理之bind mounts

    创建容器使用bind mounts 挂载文件系统.宿主机文件系统会覆盖掉容器里初始数据 [root@localhost ~]# mkdir /www/htpm -pv mkdir: 已创建目录 &qu ...

  4. docker 数据卷管理

    在生产环境中使用docker,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这涉及到容器对数据管理的操作 容器对数据的管理主要有两种方式: 数据卷(Data Volumes): 容器内 ...

  5. Docker容器和数据可视化管理工具Flocker

    Flocker 可轻松实现 Docker 容器及其数据的管理.这是一个数据卷管理器和多主机的 Docker 集群管理工具,你可以通过它来控制数据.可用来在 Docker 中运行你的数据库.查询和 K/ ...

  6. Docker学习第三天(Docker数据卷管理)

    1.Docker数据卷管理 在Docker中,要想实现数据的持久化(所谓Docker的数据持久化即数据不随着Container的结束而结束),需要将数据从宿主机挂载到容器中.目前Docker提供了三种 ...

  7. 理解Docker容器的进程管理

    摘要: Docker在进程管理上有一些特殊之处,如果不注意这些细节中的魔鬼就会带来一些隐患.另外Docker鼓励"一个容器一个进程(one process per container)&qu ...

  8. Docker背后的容器管理——Libcontainer深度解析

    Libcontainer 是Docker中用于容器管理的包,它基于Go语言实现,通过管理namespaces.cgroups.capabilities以及文件系统来进行容器控制.你可以使用Libcon ...

  9. Docker容器集群管理之Swarm

    Docker容器集群管理主流方案 Swarm Docker公司自研发的集群管理系统. Kubernetes Google开源的一个容器集群管理系统,用于自动化部署.扩展和管理容器应用.也称为K8S ...

随机推荐

  1. zfs文件系统简单使用

    关于ubuntu下zfs的使用参考:https://github.com/zfsonlinux/zfs/wiki/Ubuntu%2016.04%20Root%20on%20ZFS 安装zfs: 启动z ...

  2. HBuilder 打包流程

    1.运行HBuilder---百度搜索HBuilder,官网下载安装包,解压,运行HBuilder.exe.注册账号,并登陆 2.新建app---在左边右键,选择新建APP,或者,点击中间的新建app ...

  3. 使用VirtualBox调试项目踩过的坑

    当我们完成项目后 通常需要做其他系统的测试 例如win10下测试完成后要在win7中测试 这时,安装一个虚拟机是较为明智的选择 本文将讲述在使用虚拟机测试Unity发布的exe(所有的3D文件都适用) ...

  4. PAT1097:Deduplication on a Linked List

    1097. Deduplication on a Linked List (25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 ...

  5. spring cloud中利用sidecar整合异构语言(转)

    用spring cloud sidecar的整合异构语言,以前做过没有做笔记,现在再做由于各种坑又浪费了一天,这里记一下 首先是官网:http://cloud.spring.io/spring-clo ...

  6. rsyslog & syslog详解

    前言: rsyslog 是一个 syslogd 的多线程增强版.syslog是Linux系统默认的日志守护进程.默认的syslog配置文件是/etc/syslog.conf文件.程序,守护进程和内核提 ...

  7. JavaScript设计模式 Item 7 --策略模式Strategy

    1.策略模式的定义 何为策略?比如我们要去某个地方旅游,可以根据具体的实际情况来选择出行的线路. 如果没有时间但是不在乎钱,可以选择坐飞机. 如果没有钱,可以选择坐大巴或者火车. 如果再穷一点,可以选 ...

  8. 你不知道的JavaScript--Item23 定时器的合理使用

    1.定时器概述 window对象提供了两个方法来实现定时器的效果,分别是window.setTimeout()和window.setInterval.其中前者可以使一段代码在指定时间后运行:而后者则可 ...

  9. spring创建bean及数据注入

    通过spring的IoC可以实现由配置文件来创建类的对象,可以降低类鱼类之间的耦合, 通常我们都是在代码中控制对象的生成和属性注入,而使用IoC后,就可以将设计好的类交给IoC容器,让容器去控制对象的 ...

  10. 如何把Python脚本导出为exe程序

    一.pyinstaller简介 pyinstaller将Python脚本打包成可执行程序,使在没有Python环境的机器上运行 最新版是pyinstaller 3.1.1.支持python2.7和py ...