加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

如何利用Linux容器实现可移植的应用部署

发布时间:2016-01-17 18:15:53 所属栏目:Linux 来源:网络整理
导读:Docker是一种在Linux容器里运行应用的开源工具,一种轻量级的虚拟机。除了运行应用,Docker还提供了 一些工具,借助Docker Index或自己托管的Docker注册表对进

我们决定在单独的虚拟机上运行独立的应用,例如Amazon的EC2,大部分问题这时会迎刃而解:

隔离性:在一个VM上安装一个应用,应用是完全独立的,除非它们攻入了对方的防火墙。

重复性:用你喜欢的方式准备系统,然后创建一个AMI。你可以随意实例化多个AMI实例。完全是可重现的 。

安全性:由于我们完全隔离,如果Wordpress遭到攻击,其余的基础设施并不会受到影响——除 非你没有保管好SSH密钥或者在哪里都使用同一个密码,但你应该不会这么做吧?

资源限制:VM会分配特定的CPU周期、可用内存和磁盘空间,没有加价的话就不能超额。

易于安装:越来越多的应用能够在EC2上运行,只要在AWS marketplace上点击一个按钮就能实例化应用。 启动只需要几分钟,就是这样。

易于移除:不需要某个应用了?销毁VM。干净又方便。

升级、降级:Netflix如何部署代码里提到,只需要在新VM上部署新版本,然后让负载均衡器指向部署了新 版本的VM。不过应用如果需要在本地保存状态,这种方法就不是很好用了。

快照、备份:点击一个按钮(或者调用一下API)就能获得EBS磁盘的快照,快照会备份到S3中。

完美!

不过……我们有个新问题:虚拟机在两个方面比较昂贵:

金钱:你真的有那么多钱为每个应用启动一个EC2实例?另外你能预测到需要多少个实例么?如果你以后需 要更多的资源,你需要停止VM进行升级——否则就要为闲置资源白白付钱,直到真正用起来(除非 你用能动态调整大小的Solaris Zones,比如Joyent上的)。

时间:虚拟机相关的操作大多都很慢:启动要几分钟,捕捉快照要几分钟,创建镜像也需要几分钟。世界 不停转动,我们可没有这种时间!

我们能做得更好吗?

进入Docker的世界吧。

Docker是由公共PaaS提供商dotCloud的人发起的开源项目,于去年初发起。从技术角度来说,Docker(主 要用Go语言编写)试图简化两种已有技术的使用:

LXC:Linux容器,允许独立进程在比普通Unix进程更高的隔离级别上运行。使用的技术术语是集装箱化: 一个容器里运行一个进程。容器支持的隔离级别有:

文件系统:容器只能访问自己的沙箱文件系统(类似于chroot),否则要专门挂载到容器的文件系统中才 能访问。

用户名字空间:容器有自己的用户数据库(也就是容器的root不等于主机的root账户)。

进程名字空间:只有容器里的进程才是可见的(ps aux的输出会非常简洁)。

网络名字空间:每个容器都有自己的虚拟网络设备和虚拟IP(因此它可以绑定任意端口,不用占用主机端 口)。

AUFS:高级多层的统一文件系统,可用来创建联合、写时拷贝的文件系统。

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读