在Docker容器之间拷贝数据:原理与操作示例

时间:14-12-19 栏目:大数据技术文章 作者:爱说云网 评论:0 点击: 1,707 次

ocker容器可以类比成一个目录,它可以将一个应用程序运行时所依赖的所有环境(注:此应用依赖的其他的服务或程序等)打包在一起运行;同时可 以随意的对它进行“启动”、“停止”、“移动”或者“删除”等操作。Docker容器在Linux的命名空间(Namespace)机制下被激活,这样就 可以使得运行在同一服务器上的不同Docker容器能在网络(Networking)与存储(storage)层面上被“隔离”(isolation)的 运行。每个Docker容器都是在一个Docker镜像(image)的基础上创建而来;而一个Docker镜像可以支持创建、运行多个Docker容 器,这主要取决于服务器的硬件性能。所以,Docker容器是Docker运行时的表现形式。

  什么是Docker镜像?

  Docker 容器是基于一个Docker镜像创建的,而Docker镜像本身则可以通过Docker命令行工具或者Dockerfiles来生成。Docker镜像既可以包含操作系统基础设施(fundamentals)也可以包含一个预先搭建好的可以直接启动的应用程序栈。Docker镜像可以被看做是一个只读的模 板,这个模板中包含了很多“层”;而任何基于这个Docker镜像的新增操作或者更新操作都会导致一个基于当前层的新的层被创建出来,这个新创建的层是直接叠加在当前层之上的而非覆盖整个Docker镜像(注:创建新层的过程就是创建新容器的过程)。这就是一个新的Docker容器是怎么被创建出来的。

  从一个容器拷贝数据到另一个容器:

  在容器之间拷贝数据是Docker一个重要而且基本的功能。拷贝数据到其他容器的功能可以在真实场景中,如当服务器遇到不可预见的“灾难”(注:断电,宕机)时,起到备份数据的作用。

  使用容器的数据卷:

  数据卷(data volume,注:位置在/var/lib/docker/volumes)是容器可以访问,但是位置不在root文件系统中的一个目录。为了能让容器之间可以共享数据,Docker让“卷”(volume)可以绕过Docker镜像的层叠机制。容器中所有对镜像的改变全部都直接存储。每个容器都有固定的运行目录在/var/lib/docker目录下;而每个容器卷的数据则默认单独存储在/var/lib/docker/volumes/目录底下。 docker run命令的-v选项能够实现容器间数据卷中数据的互相拷贝。

  操作示例

  在这个例子中,我们假设基于镜像mymod/dvc:v1创建并运行了两个容器:dvc1与dvc2,以下是启动这两个镜像的命令:
  

  以下命令将创建并启动一个新的容器(也是基于mymod/dvc: v1镜像)但是挂载dvc1的数据卷,并使用cp命令拷贝容器dvc1中的数据到宿主机(host)上。
  

 新建的容器以读-写权限挂载宿主机的/var/temp目录为/host目录,然后挂载所有dvc1的数据卷,包含dvc1中的/var/www/html 目录,然后拷贝/var/www/html的文件目录到/host/dvc1_files下,対映宿主机/var/temp目录。

  现在我们用以下命令拷贝dvc1容器的数据到其他的容器中:
  

  新建的容器将宿主机的/var/tmp目录以只读的形式映射到dvc2容器的/host目录中,同时加载dvc2容器的所有数据卷,然后将/host /dvc1_files(对应宿主机/var/tmp/dvc1_files)目录的结构拷贝到dvc2容器的/var/www/html目录下。

  同样的目标可以在Dockerfile中使用ADD命令实现。ADD有两个参数一个是源容器一个是目的容器。ADD命令可以实现从源容器拷贝文件或者数据到目的容器的目标,而不用管各个容器的文件系统差异。

  结论

  Docker 肯定会提供更好的方式来“培养”容器化服务部署,以支持更广泛的部署平台;同时开发社区也期望Docker构建服务层级(service layer)。而Docker的做法是:开发容器核心容量,开发跨容器服务管理与通信功能。我们在这篇文章中所阐述的是数据可以在容器间被复制与冗余,这可以用来应付各种数据的损毁与恢复。Docker还提供了使用方便的容器间差异分析功能,这可以让容器更好的支持排错(debugging)、快速共享部 署环境以达到快速的部署的目标。Docker可以将容器部署环境从开发或者QA阶段直接提交到AWS部署环境。用户可以通过Docker的数据卷在容器间共享数据;可以将宿主机的目录直接挂载到容器中或者甚至可以从容器中导出数据存档,所以,Docker非常方便。

相关文章

大数据的价值
views 1507
  当我们关注那些在服务客户、增加业务机会方面具有巨大现有潜力的领域时,我认为,只有有意识地努力面向未来,并努力把重点放在那些有可能在未来几年走强的领域,我们才能够脱颖而出。大数据管理正是这样一个蕴藏着大量客户意向的领域,而支持这些意向的是客户投入真金白银的意愿。当今这个数字世界正产生着惊人的数据量...
NoSQL代表: Mongo DB(芒果数据库)
views 1792
 一、MongoDB简介         MongoDB是一个基于分布式文件存储的数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。其名字来自humongous这个单词的中间部分,从名字可见其野心所在就是海量数据的处理。(humongous:堆积如山)2011年将被记住,...
百度大数据洞察:“数”说年轻女性的自我世界-应用案例...
views 1555
  百度大数据带您透视小世界里的大女人精神。小世界指的是新一代年轻女性的自我世界,寓意每一个小小的我都是一个世界;大女人寓意新一代年轻女性脱离集体意识形态,不再完全秉承传统女性小鸟依人式的附属与顺从,而体现为一种独立自主的精神、一种大女人的情怀。   新一代年轻女性自我意识崛起下的3个需求层次  ...
网易大数据平台的Spark技术实践-技术方案...
views 1255
网易的实时计算需求 对于大多数的大数据而言,实时性是其所应具备的重要属性,信息的到达和获取应满足实时性的要求,而信息的价值需在其到达那刻展现才能利益最大化,例如电商网站,网站推荐系统期望能实时根据顾客的点击行为分析其购买意愿,做到精准营销。 实时计算指针对只读(Read On...
十大必知的大数据分析公司
views 1594
data scientist 大数据和数据分析技术将持续升温,相关创业公司也如雨后春笋一般让人们目接不暇。 最近大数据分析专家Robin Bloor 根据技术创新性, 技术路线等评判标准, 列出了10家值得关注的大数据分析技术公司,IT经理网编译整理如下: Actuate: clip_imag...
谷歌技术”三宝”之谷歌文件系统(GFS) — 大数据云计算时代...
views 2398
虽然"The Google File System " 是 03年发表的老文章了,但现在仍被广泛讨论,其对后来的分布式文件系统设计具有指导意义。然而,作者在设计GFS时,是基于过去很多实验观察的,并提出了 很多假设作为前提,这等于给出了一个GFS的应用场景。所以我们自己在设计分布式系统时,一定要注意...
了解用于大数据解决方案的逻辑层-技术方案...
views 1328
文中介绍的模式有助于定义大数据解决方案的参数。本文将介绍最常见的和经常发生的大数据问题以及它们的解决方案。原子模式描述了使用、处理、访问和存储大数据的典型方法。复合模式由原子模式组成,并根据大数据解决方案的范围进行分类。由于每个复合模式都有若干个维度,所以每个模式都有许多变化。复合模式使得业务和技术...
云计算功能
views 1488
随着技术的进步,人类需要处理的数据业务也越来越多。无可争议的一件事是云计算功能是强大的,它可以有效地降低计算机硬件的投资,并降低信息服务的复杂性,节约人力物力。当云计算功能得到更好的发挥时,相信会有更多企业加入进来,使用云计算功能也将越来越方便。( 云计算的功能好处可以从以下几个方面看到。比如当用...

声明: 本文由( 爱说云网 )原创编译,转载请保留链接: 在Docker容器之间拷贝数据:原理与操作示例

在Docker容器之间拷贝数据:原理与操作示例:等您坐沙发呢!

发表评论


读者排行