转自: http://blog.csdn.net/wangtaoking1/article/details/45043523git
Docker并非LXC的替代品,Docker的底层就是使用了LXC来实现的。LXC将Linux进程沙盒化,使得进程之间相互隔离,而且可以控制各进程的资源分配。
在LXC的基础之上,Docker提供了一系列更强的功能。docker
Docker定义了一种新的格式,将应用和其依赖环境所有打包到一个单一对象中,这个对象能够在任何安装有Docker的机器上共享,在任何机器上执行这个对象的效果都是同样的。LXC仅仅实现了进程沙盒化,并不能在不一样机器上进行移植。Docker将应用的全部配置进行抽象,打包到一个容器中,使得该容器具备可移植性。服务器
Docker针对应用的部署作了优化,反映在其API,用户接口,设计原理及文档上面。而LXC仅仅关注容器做为一个轻量级的服务器。markdown
Docker中支持Dockerfile,将应用的全部依赖项,构建工具和包都以源码的形式写在Dockerfile中,而后Docker能够根据Dockerfile构建镜像。该镜像在任何机器上面运行的效果都同样。工具
Docker对容器提供了类git的版本控制功能,支持版本回滚等功能。Docker也实现了增量上传和下载的功能,节约了上传和下载时的带宽资源。优化
一个镜像能够做为基础镜像来建立更多特定的镜像,镜像之间支持多层重用。ui
Docker开发了一个Docker Hub,里面包含了各类经常使用的镜像,很是方便,咱们也能够将本身的镜像上传到Docker Hub中。用户也能够在私有环境中搭建本身的Docker仓库,用来知足镜像的内部共享。.net
Docker定义了一个API,用于自动化和本地化容器的建立和部署。已经存在大量的集成了Docker的工具集,例如Deis,mesos,docker-ui,jenkins等等。设计
原文:http://stackoverflow.com/questions/17989306/what-does-docker-add-to-just-plain-lxc版本控制