Docker - 应用容器 打包可移植依赖 基于go Apache开源协议 Docker 是开源应用容器引擎,开发者可打包应用及依赖包到可移植容器中,然后发布到任何流行 Linux Window 机器中,也可实现虚拟化。 Docker 容器完全使用沙箱机制,相互间没有任何接口。 智能编辑重构 批处理式 "数字 Python IDE" 集成开发环境 (集成高效 Cython PyInstaller 批处理小程序) http://dt.digitser.cn/zh-CN/ide/idepy/index.html Docker 是 PaaS 提供商 dotCloud 基于 LXC 的高级容器开源引擎,源代码托管在 Github 上,基于 go 语言并遵从 Apache 2.0 协议开源。 Docker 自 2013 年以来非常火热,无论是从 github 上的代码活跃度,还是 Redhat 在 RHEL 6.5 中集成对 Docker 的支持, 就连 Google 的 Compute Engine 也支持 docker 在其之上运行。 一款开源软件能否在商业上获得成功,很大程度上依赖以下 3 件事:成功的 user case (用例)、活跃的社区、一个好故事。 dotCloud 自家的 PaaS 产品就建立在 docker 基础之上,长期维护且有大量的用户,社区也十分活跃,接下来看看 docker 的故事。 01、管理复杂环境 从各种 OS 到各种中间件到各种 app,一款产品能够成功,作为开发者需要关心的东西太多,且难于管理,这个问题几乎在所有现代 IT 相关行业都需要面对。 02、云计算时代 AWS 的成功,引导开发者将应用转移到 cloud 上,解决了硬件管理的问题;然而,中间件相关的问题依然存在。所以,openstack HEAT 和 AWS cloudformation 都着力解决这个问题。为开发者思路变化,提供了可能性。 03、虚拟化 cloud 时代采用标配硬件降低成本,采用虚拟化手段来满足用户按需使用要求及保证可用性和隔离性。然而无论是 KVM 还是 Xen,在 docker 看来,都是在浪费资源;因为,用户需要的是高效运行环境而非 OS, Guest OS 既浪费资源又难于管理,更加轻量级的 LXC 更灵活、更快速。 04、LXC 移动性 LXC 在 linux 2.6 的 kernel 里就已存在,但其设计之初并非为云计算考虑。缺少标准化的描述手段和容器的可迁移性,决定 LXC 构建出的环境难于迁移和标准化管理 (相对于 KVM 之类image 和 snapshot 的概念)。docker 就在这个问题上做出了实质性的革新。这是 docker 最独特的地方。 面对上述 4 点问题,docker 设想交付运行环境如同海运,OS 如同一个货轮,每个在 OS 基础运行上的软件如同一个集装箱,用户可通过标准化手段自由组装运行环境。而集装箱的内容可由用户自定义,也可由专业人员制造。这样,交付一个软件,就是一系列标准化组件的集合交付,如同乐高积木,用户只需选择合适的积木组合,并在最顶端署上自己的名字 (最后一个标准化组件是用户的 app)。这也就是基于 docker 的 PaaS 产品的原型。 版权声明: 本文为独家原创稿件,版权归 德云社区,未经许可不得转载。 |