国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > 管理維護 > 正文

Docker 和一個正常的虛擬機有何區別?

2024-09-10 14:19:09
字體:
來源:轉載
供稿:網友
我多次重讀Docker.io文檔,希望搞明白Docker.io和一個完全的虛擬機的區別。Docker是如何做到提供一個完整的文件系統,獨立的網絡環境等等這些功能,同時還沒有如此龐大?

為什么部署軟件在一個docker影像(image)比部署在一致的生產環境上要容易?

當前Docker使用的是Linux容器,這是運行在與它的宿主機器同樣的操作系統上。這準許它可以和宿主機器共享許多系統資源。它也會使用AuFS作為文件系統,也為你管理網絡。

AuFS是一個層狀的文件系統,因此你可以有一個只讀部分和一個只寫部分,然后將二者組合起來。你可以使系統的共同的部分用作只讀,那塊是被所有容器共享,并且給每個容器自己的可寫區域。

好吧,讓我們假設你有一個容器影像(image)容量是1GB,如果你想用一個完整的虛擬機來裝載,你得需要容量的大小是1GB乘上你需要虛擬機的數量。但使用Linux容器虛擬化技術(LXC)和AuFS,你可以共享1GB容量,如果你需要1000個容器,假設他們都運行在同樣的系統影像上,你仍然可以用稍微比1GB多一點的空間來給容器系統。

一個完整的虛擬化系統得到了分給它的自有全部資源,只有最小的共享。你獲得了更多的隔離,但是這是很龐大的(需要更多的資源)。

使用Linux容器虛擬化技術(LXC),隔離性方面有所缺失,但是他們更加輕量,而且需要更少資源。所以你可以輕松運行1000個容器在一個宿主機器上,甚至眼都不眨。試著用Xen來實現那個,我想除非你有一個超級強大的主機,不然我看是不可能的了。

一個完整的虛擬系統通常得用幾分鐘去啟動,linux容器虛擬技術(LUX)只要數秒,甚至有時時間更短。

對于每種虛擬系統都有反對者和支持者。如果你希望一個完全隔離的和資源有保障的環境,那么完全的虛擬機是你的選擇。如果你只希望進程之間相互隔離,并且希望大量運行他們在一個合理大小的宿主機器上。那么linux容器虛擬技術(LUX)是你的選擇。

更多有關信息,可以參考這些博客,這非常詳細介紹了LXC的工作http://blog.dotcloud.com/under-the-hood-linux-kernels-on-dotcloud-part


"為嘛在docker影像上部署軟件比在一致生產環境上容易?"我覺得問這個問題是非常愚蠢的。


部署一個一致的生產環境說起來容易做起來難。即使你使用了chef 和puppet之類的工具,像操作系統升級,還有一些其它的事情而造成的主機及環境之間的改變,往往是常有的事。


docker所做的事情就是賦予你一種能力,使你可以將OS快照存入一個通用的鏡像,并使得在往其它的docker主機上部署時變得容易。對于本地,開發、質量管理、產品等等,都是用的同一個鏡像。當然你也可以用其它的工具來做到這一點,但是可能沒有這么容易或者這么快。


這對于單元測試是非常棒的。讓我們來看看你有1000個測試,而且都需要連接數據庫。為了不破壞任何事情,你需要一個接著一個的運行,以便這些測試不會相互影響(每個測試都在事務中,然后回滾回去)。使用Docker,那么你可以創建一個數據庫的影像(image),既然你知道這些測試會運行在相同的的數據庫快照下,那么就可以并行地運行所有測試。既然這些測試都是并行運行在linux容器中,那么他們可以同時運行在同樣的環境中。這樣你的測試會完成的非??臁?
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 柳河县| 垫江县| 贺州市| 奈曼旗| 泰宁县| 开平市| 都昌县| 昌黎县| 班戈县| 巴楚县| 乐亭县| 南开区| 安庆市| 铅山县| 宿州市| 涿州市| 虞城县| 明水县| 山西省| 康平县| 延吉市| 萨嘎县| 修武县| 平邑县| 信丰县| 武隆县| 那坡县| 清远市| 蒲城县| 阜城县| 崇义县| 建宁县| 调兵山市| 雷州市| 荣昌县| 石首市| 绥化市| 台山市| 台山市| 揭东县| 洛浦县|