文档介绍:Docker 技术的移植性分析研究摘要: Docker 因为其轻量、便捷的特点,受了业界广泛的关注和讨论,目前已有多个相关项目, 逐渐形成了围绕 Docker 的生态体系。 Docker 的核心思想是利用扩展的 LXC ( Linux Container )方案实现一种轻量级的虚拟化解决方案。 Docker 主要利用 AUFS 机制来实现系统的移植性, 节省了存储和内存, 也保证了容器的快速部署。本文从 AUFS 的实现原理入手, 详细分析了 Docker 的移动应用部署的原理和可行性。中国论文网/view- 关键词: Docker ; AUFS ;文件系统;移植性中图分类号: TP311 文献标识码: A DOI : .1003- 0 引言 Docker 是 dotcloud 公司于 2013 初年开始的一个开源项目,最早是该公司已有的云业务的一个自然扩展技术。 Docker 对容器的使用基本是建立在 LXC 基础之上的,然而 LXC 存在的问题是难以移动,即难以通过标准化的模板制作、重建、复制和移动容器。在以 VM 为基础的虚拟化手段中,有 image 和 snapshot 可以用于 VM 的复制、重建以及移动的功能。想要通过容器来实现快速的大规模部署和更新, 这些功能不可或缺。针对这样的问题, Docke r 利用 AUFS 来实现对容器的快速更新, 中引入了 Storage Driver , 支持 AUFS , VFS , Device Mapper ,也为 BTRFS 以及 ZFS 的引入提供了可能。 1 Docker 简介 Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC ( Linux Container )的应用容器引擎, 让开发者可以将应用程序、依赖的运行库文件打包并移植到一个新的容器中, 然后发布到任何系统为 Linux 的机器上, 也可以实现虚拟化解决方案。容器是完全沙箱机制的实现方式,任意容器之间不会有任何接口,具有安全访问资源的特性,可以实现系统的隔离; 而且容器的运行资源开销小,可以很容易地在机器和数据中心中运行。最重要的是 Docke r 容器不依赖于任何特定需求实现的编程语言、编程框架或已打包的系统。 Docker 目前在业界非常受欢迎,包括 dotCloud , pute Engine 和百度应用引擎( BAE ) ,都使用了 Docker 。 Docker 容器主要解决“依赖地狱”的问题,即应用通常从已存在的组件组合而来, 并且依赖其他服务和应用。例如, Python 应用可能使用 Postgre 所为一个数据存储,用 Redi s 缓存以及使用 Apache 作 web 服务器。每个这些组件都附带自身的一些依赖,这些依赖可能与其他组件产生冲突。通过打包每个组件及其依赖, Docker 容器解决冲突依赖、缺少依赖、平台依赖等问题。 2 Docker 的移植性 AUFS 简介 AUFS ( AnotherUnionFS )是一种 Union FS ,简单来说就是支持将不同目录挂载到同一个虚拟文件系统下( unite several directories into a single