Docker與LXC的區別

轉自: 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版本控制

相關文章
相關標籤/搜索