docker概述
docker是一个开源的软件部署解决方案;
docker也是轻量级的应用容器框架;
docker可以打包、发布、运行任何的应用,这个也是docker的产品理念:docker - build, ship, and run any app, anywhere
docker采用的是lxc(namespace+cgroups),即在linux内核的namespace[资源隔离]和cgroups[资源控制]技术的基础上通过镜像管理机制来实现轻量化设计。
docker组成
docker的组成包括docker server和dockerclient,其中docker包括的组件:容器(container)、镜像(image)和仓库(repositories),如下图:
docker vs vm
docker作为容器的一种,跟传统的vm存在很大的差异,首先从架构上比较2者所在的位置:
通过比较,我们可以看出,vm其实是在硬件的基础上虚拟化(hypervisor)出来的操作系统,多个vm之间共享底层硬件资源。而docker是在linux基础上采用namespace和cgroups技术进行的隔离,这就造就了docker既可以运行在硬件操作系统之上,也可以运行在vm之上。2者的区别也决定了,2者的差异,这里总结了两者的差异,汇总如下:
docker既然存在这样的特性,那么docker可以做什么呢?下图给出了docker的8种场景,而作者从实际的工作出发,主要采用docker将现有产品的发布流程精简化,减少了大量的环境配置工作,由于docker的隔离性,可以将应用程序打包成docker镜像,同一个产品不同版本可以打包成不同的镜像,这也方便了测试的工作。
因此,从不同的岗位看待docker,docker带来的改变是全方面的
原文链接:http://blog.51cto.com/11883699/2309952