如何利用Linux容器实现可移植的应用部署
Docker可以安装在任何支持AUFS和内核版本大于等于3.8的Linux系统上。但从概念上来说它并不依赖于这 些技术,以后也可以和类似的技术一起运行,例如Solaris的Zones或BSD jails,并将ZFS作为文件系统。不过 目前只能选择Linux 3.8+和AUFS。 那Docker为什么有意思呢? Docker非常轻量。启动VM是个大动作,需要占用大量内存;而启动Docker容器只耗费很少的CPU和内存,并 且非常快。几乎和启动一个常规进程没什么区别。不仅运行容器快,构建镜像、捕获文件系统的快照也很快。 它运行在已经虚拟化过的环境中。也就是说,你可以在EC2实例、Rackspace VM或VirtualBox里运行Docker 。事实上,在Mac和Windows上使用Docker的首选方式是使用Vagrant。 Docker容器能移植到任何运行Docker的操作系统上。无论是Ubuntu还是CentOS,只要Docker运行着,你的 容器就能运行。 让我们回到前面的部署、操作问题列表,看看Docker是怎么解决的: 隔离性:Docker在文件系统和网络级别隔离了应用。从这个意义上来讲很像在运行”真正的“ 虚拟机。 重复性:用你喜欢的方式准备系统(登录并在所有软件里执行apt-get命令,或者使用Dockerfile),然后 把修改提交到镜像中。你可以随意实例化若干个实例,或者把镜像传输到另一台机器,完全重现同样的设置。 安全性:Docker容器比普通的进程隔离更为安全。Docker团队已经确定了一些安全问题,正在着手解决。 资源约束:Docker现在能限制CPU的使用率和内存用量。目前还不能直接限制磁盘的使用情况。 易于安装:Docker有一个Docker Index,这个仓库存储了现成的Docker镜像,你用一条命令就可以完成实 例化。比如说,要使用Clojure REPL镜像,只要运行docker run -t -i zefhemel/clojure-repl命令就能自动 获取并运行该镜像。 易于移除:不需要应用了?销毁容器就行。 升级、降级:和EC2 VM一样:先启动应用的新版本,然后把负载均衡器切换到新的端口。 快照、备份:Docker能提交镜像并给镜像打标签,和EC2上的快照不同,Docker是立即处理的。 怎么使用Docker 假设你已经安装了Docker。要在Ubuntu容器中运行bash,只要执行: docker run -t -i ubuntu /bin/bash 根据“ubuntu”镜像的下载情况,Docker会选择下载或者使用本地可用的拷贝,然后在Ubuntu 容器里运行/bin/bash。接着你就能在容器里执行几乎所有典型的Ubuntu操作,比如安装新的包。 我们来安装个“hello”: $ docker run -t -i ubuntu /bin/bash root@78b96377e546:/# apt-get install hello Reading package lists... Done Building dependency tree... Done The following NEW packages will be installed: hello 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 26.1 kB of archives. After this operation, 102 kB of additional disk space will be used. Get:1 http://archive.ubuntu.com/ubuntu/ precise/main hello amd64 2.7-2 [26.1 kB] Fetched 26.1 kB in 0s (390 kB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package hello. (Reading database ... 7545 files and directories currently installed.) Unpacking hello (from .../archives/hello_2.7-2_amd64.deb) ... Setting up hello (2.7-2) ... root@78b96377e546:/# hello Hello, world! (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |