实例介绍
Docker是PaaS供应商dotCloud开源的一个基于LXC 的高级容器引 擎,源代码托管在 GitHub 上, 基于Go语言开发并遵从Apache 2.0协议开源。Docker提供了一种在安全、可重复的环境中自动部署软件的方式,它的出现拉开了基于云计算平台发布产品方式的变革序幕。为了更好的促进Docker在国内的发展以及传播,我们决定开设《深入浅出Docker》专栏,邀请Docker相关的布道师、开发人员、技术专家来讲述Docker的各方面内容,让读者对Docker有更深入的了解,并且能够积极投入到新技术的讨论和实践中。
THANK YOU 6k275M250 量 detests downloads meetuPs H i Stars s 67k+ contributors cites projects 8.5K- 14K+ 30 commits s dockerized apps countries- 生的目的就是为了解决以下问题 aCon 环境管理复杂从各种到各种中间件再到各种 款产品能够成功发布,作为 开发者需要关心的东西太多,且难于管理,这个问题在软件行业中普遍存在并需要直接面 对 可以简化部署多种应用实例工作,比如应用、后台应用、数据库应用、 大数据应用比如 集群、消息队列等等都可以打包成一个 部署。如图所示 docker ) 云计算时代的到来的成功引导开发者将应用转移到云上解决了硬件管理的问 趟,然而软件配置和管理相关的问依然存在 是这个方向的业芥标 准样例模板可参考这里。 的岀现正好能帮助软件开发者开阔思路,尝试新的软件 管理方法来解决这个问题。 虚拟化手段的变化云时代采用标配硬件来降低成本,采用虚拟化于段来满足用户按需 分配的资源需求以及保证可用性和隔离性。然而无论是还是 在 看米 都在浪费资源,因为用户需要的是高效运行环境而非 既浪费资源又难于管 理更加轻量级的加灵活和快速。如图所示: Containers vs VMS A App A B Containers are isolated Bins/ Bins/ Bins/ but share os and, where Lbs Libs VM appropriate, bins/libraries Guest Guest Guest ontainer Hypervisor (Type 2 Docker Engine Host os Host Os Server Server 的便携性在 的 里就已经存在了,但是其设计之初并非为 云计算考虑的,缺少标准化的描述手段和容器的可便携性,决定其构建岀的环境难于分发 和标准化管理相对于之类 和 的概念 就在这个问题上做出 了实质性的创新方法。 以 作为主机为例,直接安装 启动 后台 跑我们第一个 容器: 可以看到在运行命令行后的下一行会打印出经典的 字符串。 核心技术预览 核心是一个操作系统级虚拟化方法理解起来可能并不像那样直观。我们从虚 拟化方法的四个方面:隔离性、可配额可度量、便携性、安全性来详细介绍 的技 术细节 隔离性 每个用户实例之间相互隔离互不影响。一般的硬件虚拟化方法给出的方法是,而 给出的方法是 史细一点讲就是 其中 等 将 的进程、网络、消息、文件系统、 和用户空间隔离廾。 不同用户的进程就是通过 隔离开的,且不同 中可以有相同 。所有的走程在 中的父进程为 进程,每个进程只有不同的 。同时由于允许嵌套,因此可以很方便的实现 有了 每个 中的能够相互隔离,但是网络端口还是共享 的端口。网终隔离是通过 实现的,每个 有独立的 目录。这样每个 的 网络就能隔离开来。 默认采用的方式将 中的虚拟网卡同上的 个 连接在·起 中进程交互还是采用常见的进程间交互方法 包括常见的信号量、消息队列和共享内存。然而同不同的是, 的进 程间交互实际上还是上具有相同 中的进程间交互,因此需要在 瓷源申请时加入 信息每个资泺有一个唯一的位 关似 将一个进程放到一个特定的日录执行。 允许不同 的进程看到的文件结构不同,这样每个 中的进程所看到的文件 目录就被隔离廾了。同 不同,每个 中的 在 的 信息只包含所在 的 允许每个 拥有独立的 和 使其在网终上可以被视作一个独立的节点而非上的一个进程 每个 可以有不同的和 也就是说可以在 内部用 内部的用户执行程序而非上的用户。 可配额可度量 灾现了对资源的配额和度量。 的使用非常简单,提供类似文件的接 口,在 目录下新建一个文件夹即可新建一个 在此文件夹中新建文 件,并将写入该文件,即可实现对该进程的资源控制 可以限制 、九大子系统的资源,以下是 每个子系统的详细说明: 这个子系统设置限制每个块设备的输入输出控制。例如磁盘,光盘以及等 等 这个子系统使用调度程序为 任务提供的访问。 产生 任务的资源报告 如果是多核心的,这个子系统会为 任务分配单独的和内存。 允许或拒绝 任务对设备的访问。 暂停和恢复 任务。 设置每个 的内存限制以及产生内存资源报告 标记每个网终包以供 方便使用 名称空间子系统。 以上九个子系统之间也存在着一定的关系详情请参阅官方文档。 便携性 是种 简单来说就是支持将不同目录挂载到同·个 虚拟文件系统下 的文件系统史进 一步的理解支持为每一个成员目录类似 设定 和 权限同时 甲有一个类似分层的概念对 权限的 可以逻辑上进行修改増量地不影响 部分的。通常 有两个用途 方面可以实现不借助 将多个挂到同·个目录下另个更常用的就是将 的 和一个 的 联合在一起, 正是基于 此方法可以允许在 不变的基础上允许用户在其上进行一些写操作 在 上构建的 也止是如此,接下来我们从启动 中的 为例来介绍 特性的运用 典型的启动运行需要两个 ①) 主要包含 和 主要是引导加载 当成功后 被加载到内存中后 就被 包含的就是典型 系统中的 等标准目录和文件, 对于不同的发行版 基本是一致的但会有差别因此不同的发行版可 以公用 如下图 典型的在启动后,首先将 设置为 进行一系列检查然后将其切换 为 供用户使用。在 中,初始化时也是将 以 方式加载 并检查,然而接下来利用 的方式将一个 文件系统挂载在 的之上,并且允许再次将下层的 设定为 并且 向上叠加这样一组 和一个 的结构构成一个 的运行时态每 一个被称作一个层。如下图 writable Container references Apache Image parent nod emacs mage se Image Bas 得益于 的特性每一个对 层文件目录的修改都只会存在于上层的 层中。这样由于不存在竞争多个 可以共享 的层。所以 将 的层称作 对于 而言整个 都 的,但事实上所有的修改都写入最上层的 层中 不保存用户状态,只 用于模板、新建和复制使用。 【实例截图】
【核心代码】
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论