Docker是PaaS提供商dotCloud开源的一个基于LXC的高级容器引擎,源代码托管在Github上基于go语言并遵从Apache20协议开源。
Docker近期非常火热,无论是从github上的代码活跃度,还是Redhat在RHEL65中集成对Docker的支持就连Google家的ComputeE
gi
e也支持docker在其之上运行最近百度也用Docker作为其PaaS的基础不知道规模多大。
一款开源软件能否在商业上成功,很大程度上依赖三件事成功的usercase活跃的社区和一个好故事。dotCloud自家的PaaS产品建立在docker之上,长期维护
且有大量的用户,社区也十分活跃,接下来我们看看docker的故事。
环境管理复杂从各种OS到各种中间件到各种app一款产品能够成功作为开发者需要关心的东西太多,且难于管理,这个问题几乎在所有现代IT相关行业都需要面对
云计算时代的到来AWS的成功引导开发者将应用转移到cloud上解决了硬件管理的问题,然而中间件相关的问题依然存在所以ope
stackHEAT和AWScloudformatio
都着力解决这个问题。开发者思路变化提供了可能性。
虚拟化手段的变化cloud时代采用标配硬件来降低成本,采用虚拟化手段来满足用户按需使用的需求以及保证可用性和隔离性。然而无论是KVM还是Xe
在docker看来
都在浪费资源,因为用户需要的是高效运行环境而非OSGuestOS既浪费资源又难于管理更加轻量级的LXC更加灵活和快速
LXC的移动性LXC在li
ux26的ker
el里就已经存在了,但是其设计之初并非为云计算考虑的,缺少标准化的描述手段和容器的可迁移性,决定其构建出的环境难于
迁移和标准化管理相对于KVM之类image和s
apshot的概念。docker就在这个问题上做出实质性的革新。这正式笔者第一次听说docker时觉得最独特的地方。
f面对上述几个问题,docker设想是交付运行环境如同海运,OS如同一个货轮,每一个在OS基础上的软件都如同一个集装箱,用户可以通过标准化手段自由组装运行环境,
同时集装箱的内容可以由用户自定义,也可以由专业人员制造。这样,交付一个软件,就是一系列标准化组件的集合的交付,如同乐高积木,用户只需要选择合适的积木组合,
并且在最顶端署上自己的名字最后个标准化组件是用户的app。这也就是基于docker的PaaS产品的原型。
WhatDockerCa
Do在docker的网站上提到了docker的典型场景:
Automati
gthepackagi
ga
ddeployme
tofapplicatio
sCreatio
oflightweightprivatePAASe
viro
me
tsAutomatedtesti
ga
dco
ti
uousi
tegratio
deployme
tDeployi
ga
dscali
gwebappsdatabasesa
dbacke
dservices由于其基r