亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Docker和LXC有什么不同

Docker和LXC有什么不同

楊__羊羊 2019-05-10 11:06:01
Docker和LXC有什么不同
查看完整描述

2 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

Docker不是lxc的一個替代方案?!發xc”是指linux內核(尤指命名空間以及Cgroup)的一個特性,它允許其他一些沙盒進程運行在一塊相對獨立的空間,并且能夠方便的控制他們的資源調度。

而基于底層的內核特性的基礎上,Docker在上層構建了一個更高層次的具備多個強大功能的工具集:
可移植的跨機器部署。Docker定義了一個將應用打包的規范,而它的所有依賴都被封裝到了一個簡單對象里,它可以被傳輸到任意一臺能運行 Docker的機器,并且在這里啟動Docker的實例之后,它能夠確保承載應用的執行環境將會與之前所定義的完全一致。Lxc實現了進程級的沙盒封裝, 它是可移植部署的一個重要前提,但是要想實現可移植部署,僅僅是這樣可還不夠。如果你發送給我一份安裝到一個自定義LXC配置下的應用副本,那么幾乎可以 肯定的是,它在我的機器上運行的結果不會跟你的完全一樣,因為它綁定了你機器的一些特殊配置:網絡,存儲,日志,Linux發行版本等等。Docker為 這些機器的特定配置定義了一個抽象層,所以它使得這些相同的Docker容器能夠一成不變的運行在多個不同的主機上,甚至帶上各種不同的配置。
以應用為中心。相對于機器而言,Docker被用于優化應用的部署過程。這可以從它的API,UI,設計理念還有文檔里得到體現。反之,lxc的輔助腳本專注在把容器作為一個輕量級的 機器 使用 —— 基本上就是一堆啟動更快并且內存需求更小的服務器。我們認為容器技術的內容遠遠不止這些。
自動構建。Docker為開發人員引入了一個可以用來把他們的源代碼自動打包到容器里的工具,并且他們能夠對于應用的依賴,構建工具,打包服 務等有著完全的自主掌控能力。他們能夠自由的使用make,maven,chef,puppet,salt,debian包,rpm包,源碼包,或者任意 以上的結合,而無需關心機器本身的配置。
版本化。Docker引入了一個類似git的特性來完成一個容器的連續版本追蹤,版本之間的差異diff,新的版本的提交,回滾等。歷史記錄 信息里也包含了容器的用戶信息以及他是如何構建它的,因此生產環境的服務器你都有充足的手段去一步步的定位到最上游的開發人員。Docker也實現了一個 增量上傳和下載功能,類似于git pull,所以更換到新版本的容器只需要傳輸增量部分就行。
組件的重用。任意容器都能用作“基礎鏡像”來創建更特定的組件。這可以手工完成也可以做成自動構建的一部分。例如,你可以準備一個理想的 python環境,并且把它用作10個不同的應用的基礎鏡像。你所定義的標準postgresql設置可以被將來你手上的所有項目重用。諸如此類。
共享。Docker 有權訪問一個公共的注冊中心( https://registry.hub.docker.com/ ) 而這里有數以千計的業界人士上傳各種各樣有價值的容器:任一從redis,couchdb,postgres到irc bouncers再到rails應用服務器,Hadoop甚至是多個發行版本的基礎鏡像。該注冊中心也包含了一個官方的“標準庫”,這里提供了一些由 Docker官方團隊維護的實用容器。注冊中心本身也是開源的,所以任何人都能部署他們自己的私有注冊中心來存儲和下發私有容器,例如用于內網服務器的部 署。
工具生態圈。Docker定義了一個API來自動化和個性化的創建和部署容器。也因此催生了眾多的工具集成到Docker,為之提供一些擴展 特性。類PaaS的部署(Dokku,Deis,Flynn),多節點編排(maestro, salt, mesos, openstack nova),管理看板(docker-ui, openstack horizon, shipyard),配置管理(chef, puppet),持續集成(jenkins, strider, travis)等等。Docker正在迅速的建立以它本身為標準的基于容器的工具生態圈。



查看完整回答
反對 回復 2019-05-11
  • 2 回答
  • 0 關注
  • 983 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號