docker並不是lxc的替代品,docker的底層就是使用了lxc來實現的。lxc將linux程序沙盒化,使得程序之間相互隔離,並且能夠控制各程序的資源分配。
在lxc的基礎之上,docker提供了一系列更強的功能。
docker定義了一種新的格式,將應用和其依賴環境全部打包到乙個單一物件中,這個物件可以在任何安裝有docker的機器上共享,在任何機器上執行這個物件的效果都是一樣的。lxc僅僅實現了程序沙盒化,並不能在不同機器上進行移植。docker將應用的所有配置進行抽象,打包到乙個容器中,使得該容器具有可移植性。
docker針對應用的部署做了優化,反映在其api,使用者介面,設計原理及文件上面。而lxc僅僅關注容器作為乙個輕量級的伺服器。
docker中支援dockerfile,將應用的所有依賴項,構建工具和包都以原始碼的形式寫在dockerfile中,然後docker可以根據dockerfile構建映象。該映象在任何機器上面執行的效果都一樣。
乙個映象可以作為基礎映象來建立更多特定的映象,映象之間支援多層重用。
docker開發了乙個docker hub,裡面包含了各種常用的映象,非常方便,我們也可以將自己的映象上傳到docker hub中。使用者也可以在私有環境中搭建自己的docker倉庫,用來滿足映象的內部共享。
docker定義了乙個api,用於自動化和本地化容器的建立和部署。已經存在大量的整合了docker的工具集,例如deis,mesos,docker-ui,jenkins等等。
LXC與Docker Containers的區別
1 lxc是linux containers的縮寫。它是一種虛擬化技術,通過乙個linux核心在乙個受控主機上虛擬地執行多個linux系統。lxc使用核心的cgroups功能,來提供程序和網路空間的隔離,來替代通過建立乙個完整的虛擬機器來為應用程式提供隔離環境。2 docker是乙個開源工具,用於在...
Docker與KVM的區別
docker 專案的目標是實現輕量級的作業系統虛擬化解決方案。docker 的基礎是 linux 容器 lxc 等技術。在 lxc 的基礎上 docker 進行了進一步的封裝,讓使用者不需要去關心容器的管理,使得操作更為簡便。使用者操作 docker 的容器就像操作乙個快速輕量級的虛擬機器一樣簡單。...
Docker與KVM之間的區別
docker 專案的目標是實現輕量級的作業系統虛擬化解決方案。docker 的基礎是 linux 容器 lxc 等技術。在 lxc 的基礎上 docker 進行了進一步的封裝,讓使用者不需要去關心容器的管理,使得操作更為簡便。使用者操作 docker 的容器就像操作乙個快速輕量級的虛擬機器一樣簡單。...