docker 容器的数据卷

什么是数据卷(DataVolume)

数据卷是经过特殊计的目录,可以绕过联合文件系统(UFS),为一个或多个容器提供访问。

数据卷设计的目的,在于数据的永久化,它完全独立与容器的生存周期,因此,Docker不会在容器删除时删除其挂载的数据卷,也不会存在类似的垃圾收集机制,对容器引用的数据卷进行处理。

docker数据卷是独立于容器,存在于宿主机Host里。数据卷可以是目录,也可以是文件。数据卷可以实现多个容器的数据共享和交换。

数据卷(DataVolume)的特点

  • 数据卷在容器启动时初始化,如果容器使用的铺像在挂载点包含了数据,这些
    数据会拷贝到新初始化的数据卷中。
  • 数据卷可以在容器之间共享和重用
  • 可以对数据卷里的内容直接进行修改
  • 数据卷的变化不会影响像的更新
  • 卷会一直存在,即使挂载数据卷的容器已经被删除

为容器添加数据卷

sudo docker run -v ~/containerdata:/data -it ubuntu/bin/bash

为数据卷添加访问权限

$dockerrun -v ~/datavolume:/data:ro -it ubuntu/bin/bash只读

使用Dockerfile构建包含数据卷的镜像

DockerfiIe指令:VOLUME["/data"]

创建的目录不能映射已存在的本地文件目录中,运行同样镜像所建的数据卷也是不同的。本地目录由docker自动创建。

docker 的数据卷容器

命名的容器挂载数据卷,其他容器通过挂载这个容器实现数据共享,挂载数据卷的容器,就叫做数据卷容器。

挂载数据卷容器的方法:
docker run --volumes-from [CONTAINERNAME]

简化inspect返回信息,只查看volume信息:
docker inspect --format="{{.volumes}}" CONTAINER-NAME

即使删除了数据卷容器,挂载这个数据卷容器的容器仍然可以访问数据卷挂载目录,即数据卷容器只是一个配置信息的传递

docker rm -v CONTAINER_NAME连同volume一起删除(依旧可以访问,实质是指向本地目录)

docker 数据卷的备份和还原

数据备份方法

docker run --volumes-from [container name] -v $(pwd):/backup ubuntu

tar cvf /backup/backup.tar [container data volume]

数据换原方法

docker run --volumes-from [container name] -v$(pwd):/backup ubuntu
tar xvf /backup/backup.tar [container data volume]

Docker 容器的数据管理的更多相关文章

  1. Docker容器的数据管理

    Docker容器的数据管理 Docker容器的数据管理 什么是数据卷(Data Volume)? 数据卷是经过特殊设计的目录,可以绕过联合文件系统(UFS),为一个或者多个容器提供访问 数据卷设计的目 ...

  2. Docker学习(14) Docker容器的数据管理

    Docker容器的数据管理 Docker容器的数据卷 重要: Docker的数据卷容器 Docker数据卷的备份和还原

  3. docker容器的学习笔记

    目录 Docker入门学习笔记(一) 1. 什么是Docker? 2. Docke的目标 3. Docker通常应用场景 4. Docker的基本组成 补:Docker容器相关技术简介 安装Docke ...

  4. 数据管理 - 每天5分钟玩转 Docker 容器技术(147)

    本章将讨论 Kubernetes 如何管理存储资源. 首先我们会学习 Volume,以及 Kubernetes 如何通过 Volume 为集群中的容器提供存储:然后我们会实践几种常用的 Volume ...

  5. Docker容器数据管理(数据卷&数据卷容器)

    一:前言 在Docker容器的实际使用中,经常会遇到容器的数据持久化,容器之间的数据共享等问题,通常我们有两种解决方案: 1)数据卷(Data Volumes):就是将容器内数据直接映射到本地主机环境 ...

  6. docker容器数据管理

    Docker容器数据卷 Docker中的数据可以存储在类似于虚拟机磁盘的介质中,在Docker中称为数据卷(Data Volume). 数据卷可以用来存储Docker应用的数据,也可以用来在Docke ...

  7. Docker容器概念讲解

    Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源. Docker是通过内核虚 ...

  8. .NET 微服务和Docker容器

    .NET 微服务:适用于容器化 .NET 应用的体系结构 容器和 Docker 简介 什么是 Docker? Docker 术语 Docker 容器.映像和注册表 为 Docker 容器选择 .NET ...

  9. 跨主机使用 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(77)

    上一节我们在 docker1 上的 MySQL 容器中使用了 Rex-Ray volume mysqldata,更新了数据库.现在容器已经删除,今天将演示在 docker2 中重新使用这个卷. 在 d ...

随机推荐

  1. IBM WebSphere MQ

    相关链接: http://kakajw.iteye.com/category/269774 http://www.ibm.com/support/knowledgecenter/zh/SSFKSJ_7 ...

  2. socket.io入门示例参考

    参考示例地址:http://www.linchaoqun.com/html/cms/content.jsp?menu=nodejs&id=1480081169735

  3. HDU 1029 一道微软面试题

    http://acm.hdu.edu.cn/showproblem.php?pid=1029 给定一个数组,其中有一个相同的数字是出现了大于等于(n + 1) / 2次的.要求找出来. 1.明显排序后 ...

  4. 关于eclipse安装maven之后,maven找不到JDK问题

    问题: 最近在Eclipse里面装了maven之后,启动或者在运行项目时存在如下的警告: Eclipse is rinning in a JRE,but a JDK is require, Some ...

  5. Unity3d发布apk文件并在Android虚拟机中运行的操作流程

    总的流程分为以下6个步骤: 1.安装java_jdk 2.配置java环境变量 3.更新android的sdk 4.从Unity3d中发布出apk文件 5.创建android虚拟机并运行 6.将apk ...

  6. BFC(块级 格式化上下文)的理解

    本文转载(https://segmentfault.com/a/1190000013647777) 一.BFC的概念 1.规范解释 块格式化上下文(Block Formatting Context,B ...

  7. bt5r3开启远程登录

    sshd-generate /etc/init.d/ssh restart

  8. python中的uuid4

    Help on function uuid4 in module uuid: uuid4()    Generate a random UUID.

  9. [转]maven项目部署到tomcat

    其实maven项目部署到tomcat的方式很多,我从一开始的打war包到tomcat/webapps目录,到使用tomcat-maven插件,到直接使用servers部署,一路来走过很多弯路. 下面就 ...

  10. ThinkPHP笔记——开启debug调试模式

    debug+trace模式可以查看开发过程中TP的错误信息,可以更好地帮助开发者debug.但是debug模式的开启还不是简单的在配置文件中中设置就可以的,经过查资料摸索,找到一种有效的方法. 首先在 ...