docker容器與虛擬機器有什麼區別?

2023-01-04 10:40:45 字數 5198 閱讀 8706

1樓:騫騫學姐

1、啟動速度不同。

docker 啟動快速屬於秒級別。虛擬機器通常需要幾分鐘去啟動。

2、效能損耗不同。

docker 需要的資源更少,docker 在作業系統級別進行虛擬化,docker 容器和核心互動,幾乎沒有效能損耗,效能優於通過 hypervisor 層與核心層的虛擬化。

3、系統利用率不同。

docker 更輕量,docker 的架構可以共用一個核心與共享應用程式庫,所佔記憶體極小。同樣的硬體環境,docker 執行的映象數遠多於虛擬機器數量,對系統的利用率非常高。

4、隔離性不同。

與虛擬機器相比,docker 隔離性更弱,docker 屬於程序之間的隔離,虛擬機器可實現系統級別隔離。

5、安全性不同。

docker 的安全性也更弱。docker 的租戶 root 和宿主機 root 等同,一旦容器內的使用者從普通使用者許可權提升為 root 許可權,它就直接具備了宿主機的 root 許可權,進而可進行無限制的操作。虛擬機器租戶 root 許可權和宿主機的 root 虛擬機器許可權是分離的,並且虛擬機器利用如 intel 的 vt-d 和 vt-x 的 ring-1 硬體隔離技術,這種隔離技術可以防止虛擬機器突破和彼此互動,而容器至今還沒有任何形式的硬體隔離,這使得容器容易受到攻擊。

6、可管理性不同。

docker 的集中化管理工具還不算成熟。各種虛擬化技術都有成熟的管理工具,例如 vmware vcenter 提供完備的虛擬機器管理能力。

7、可用和可恢復性不同。

docker 對業務的高可用支援是通過快速重新部署實現的。虛擬化具備負載均衡,高可用,容錯,遷移和資料保護等經過生產實踐檢驗的成熟保障機制,vmware 可承諾虛擬機器 高可用,保證業務連續性。

8、建立、刪除速度不同。

虛擬化建立是分鐘級別的,docker 容器建立是秒級別的,docker 的快速迭代性,決定了無論是開發、測試、部署都可以節約大量時間。

9、交付、部署速度不同。

虛擬機器可以通過映象實現環境交付的一致性,但映象分發無法體系化;docker 在 dockerfile 中記錄了容器構建過程,可在叢集中實現快速分發和快速部署;

2樓:匿名使用者

docker容器不是虛擬機器,docker作為下一代虛擬化技術,正在改變我們開發、測試、部署應用的方式。那虛擬機器與docker究竟有何不同呢?我推薦你去看看時速雲,他們是一家全棧雲原生技術服務提供商,提供雲原生應用及資料平臺產品,其中涵蓋容器雲paas、devops、微服務治理、服務網格、api閘道器等。

大家可以去體驗一下。 如果我的能夠對您有幫助的話,求給大大的贊。

docker跟一般的虛擬機器有什麼區別

3樓:mexico卡卡

ibm研究部門發表了一篇關於容器和虛擬機器環境效能比較的**。這篇**使用了docker和kvm作為研究物件,闡述了docker使用nat或aufs時的開銷,並且質疑了在虛擬機器上執行容器的實踐方法。

**作者在原生、容器和虛擬化環境中執行了cpu、記憶體、網路和i/o的benchmark。其中,分別使用kvm和docker作為虛擬化和容器技術的代表。benchmark也包含了對不同環境下redis和mysql負載的取樣。

通過小資料包和多客戶端,redis側重於網路棧的效能。而mysql側重於記憶體,網路和檔案系統的效能。

結果顯示,在每一項測試中,docker的效能等同於或超出kvm的效能。在cpu和記憶體效能方面,kvm和docker都引入了明顯的,但可略不計的開銷。但是,對於i/o密集型的應用,兩者都需要進行調整以減少開銷帶來的影響。

當使用aufs儲存檔案時,docker的效能會降低。而相比之下,使用卷(volume)能夠獲得更好的效能。卷是一種專門設計的目錄,存在於一個或多個容器內。

通過這種目錄能夠繞過聯合檔案系統(union file system)。這樣它就沒有了儲存後端可能帶來的開銷。預設的aufs後端會引起顯著的i/o開銷,特別是當有多層目錄深度巢狀的時候。

docker的預設網路選項,--net=bridge,由於nat會重寫資料包,也引入了效能開銷。當資料包收發率變高時,這種開銷會變得很明顯。可以通過使用--net=host改善網路的效能。

這個選項告訴docker不要為容器建立一個獨立的網路棧,並允許容器擁有宿主機網路介面的完全訪問許可權。但是,使用這個選項時要小心。因為它允許容器內的程序像其他根程序一樣,使用數值較小的埠;並允許容器內的程序訪問本地網路服務,如d-bus。

這使得容器內的程序可以做一些預料之外的事情,如重啟宿主機。

4樓:老男孩教育

docker和虛擬機器有各自擅長的領域,在軟體開發、測試場景和生產運維場景中各有優劣勢:

1、docker啟動快速屬於秒級別,虛擬機器通常需要幾分鐘去啟動;

2、docker需要的資源更少,docker在作業系統級別進行虛擬化,docker容器和核心互動,幾乎沒有效能損耗,而虛擬機器就差了很多;

3、docker更輕量,docker的架構可以共用一個核心與共享應用程式庫,所佔記憶體極小;同樣的硬體環境,docker執行的映象數遠多於虛擬機器數量,對系統的利用率非常高;

4、與虛擬機器相比,docker隔離性更弱,docker屬於程序之間的隔離,虛擬機器可實現系統級別隔離;

5、docker的安全性也更弱,docker的租戶root和宿主機root相同,一旦容器內的使用者從普通使用者許可權提升為root許可權,它就直接具備了宿主機的root許可權,進而可進行無限制的操作。虛擬機器租戶root許可權和宿主機的root虛擬機器許可權是分離的,並且虛擬機器利用如intel的vt-d和vt-x的ring-1硬體隔離技術,這種技術可以防止虛擬機器突破和彼此互動,而容器至今還沒有任何形式的硬體隔離;

6、docker的集中化管理工具還不算成熟,各種虛擬化技術都有成熟的管理工具,比如:vmware vcenter提供完備的虛擬機器管理能力;

7、docker對業務的高可用支援是通過快速重新部署實現的,虛擬化具備負載均衡,高可用、容錯、遷移和資料保護等經過生產實踐檢驗的成熟保障機制,vmware可承諾虛擬機器高可用,保證業務連續性;

8、虛擬化建立是分鐘級別的,docker容器建立是秒級別的,docker的快速迭代性,決定了無論是開發、測試、部署都可以節省大量時間;

9、虛擬機器可以通過映象實現環境交付的一致性,但映象分發無法體系化,docker在dockerfile中記錄了容器構建過程,可在叢集中實現快速分發和快速部署。

docker和虛擬機器的區別 知乎

5樓:老男孩教育

docker

docker是一個集開發、打包、執行應用於一體的開放式平臺。docker可以用來快速交付應用。使用docker,你可以將應用程式從你的基礎設施中分離出來,並將基礎設施當做一個管理平臺。

docker可以加快打包時間,加快測試,加快釋出,縮短開發及執行**之間的週期。docker通過結合核心容器化特點和工作流,並使之工具化來實現這一切,幫助管理和釋出你的應用。

虛擬機器虛擬機器在本質上就是在模擬一臺真實的計算機裝置,同時遵循同樣的程式執行方式。虛擬機器能夠利用虛擬機器管理程式執行在物理裝置之上。反過來,虛擬機器管理程式則可執行在主機裝置或者裸機之上。

傳統的虛擬機器需要模擬數臺機器包括硬體,每臺虛擬機器都需要有自己的作業系統,虛擬機器一旦被開啟,預分配給他的資源將全部被佔用。每一個虛擬機器包含應用,必要的二進位制和庫,以及一個完整的使用者作業系統。

docker和虛擬機器有什麼區別?

虛擬機器1、資源佔用多,虛擬機器會獨佔一部分記憶體和硬碟空間。它執行的時候,其他程式就不能使用這些資源,哪怕虛擬機器裡面的應用程式,真正使用的記憶體只有1mb,虛擬機器依然需要幾百mb的記憶體才能執行。

2、冗餘步驟多,虛擬機器是完整的作業系統,一些系統級別的操作步驟,往往無法跳過,比如使用者登入。

3、啟動慢,啟動作業系統需要多久,啟動虛擬機器就需要多久,可能需要等幾分鐘,應用程式才能真正執行。

docker

1、啟動快,容器裡面的應用,直接就是底層系統的一個程序,而不是虛擬機器內部的程序。所以啟動容器相當於啟動本機的一個程序,而不是啟動一個作業系統,速度就快很多。

2、資源佔用少,容器只佔用需要的資源,不佔用那些沒有用到的資源;虛擬機器由於是完整的作業系統,不可避免要佔用所有資源;另外,多個容器可以共享資源,虛擬機器都是獨享資源。

3、體積小,容器只要包含用到的元件即可,而虛擬機器是整個作業系統的打包,所以容器檔案比虛擬機器檔案要小很多。

6樓:澤哥昊

虛擬機器受限於作業系統的啟動時間,無法做到秒級啟動。

虛擬機器與docker有何不同

7樓:a電

主作業系統(host operating system)。你的個人電腦之上,執行的可能是macos,windows或者某個linux發行版。

虛擬機器管理系統(hypervisor)。利用hypervisor,可以在主作業系統之上執行多個不同的從作業系統。型別1的hypervisor有支援macos的hyperkit,支援windows的hyper-v以及支援linux的kvm。

型別2的hypervisor有virtualbox和vmware。

從作業系統(guest operating system)。假設你需要執行3個相互隔離的應用,則需要使用hypervisor啟動3個從作業系統,也就是3個虛擬機器。這些虛擬機器都非常大,也許有700mb,這就意味著它們將佔用2.

1gb的磁碟空間。更糟糕的是,它們還會消耗很多cpu和記憶體。

docker容器是什麼?它比虛擬機器強在何處?

8樓:速達軟體公司

docker容器是一個開源的應用容器引擎,可以讓開發者用統一的形式打包其自身的應用,然後包裝到一個可以移植的容器中,隨後釋出到任何可以安裝docker引擎的伺服器上(比如主流的linux機器或者是windows機器),當然也可以實現虛擬化。docker容器幾乎沒有效能開銷,可以很容易的在機器和資料中心執行,其最大的特色就是不依賴任何系統,框架甚至是語言。

由於容器是程序級的,相比於虛擬機器有著很多的優勢。

一:啟動速度快:由於容器裡面的應用軟體,直接就是底層系統的一個程序,而不是虛擬機器內部的程序。所以啟動容器時,不是啟動一整個作業系統,速度就快了很多。

二:資源佔用少:相比於虛擬機器而言,容器只佔用需要的資源,不會去佔有無效的資源,而虛擬機器則是一個完整的作業系統,不可避免的佔用了所有資源。

三:體積小,輕量級:容器只需要包含用到的元件,對比於虛擬機器,容器檔案要比虛擬機器小很多。

四:方便移動:容器技術最重要的就是為不同的主機上執行服務一個輕便,一致的格式。容器的格式更加標準化且方便客戶對工作負載的遷移,有效避免單一的平臺提供商。

virtualbo與vmware虛擬機器有什麼區別

1 所屬廠商不同。virtualbox現在由甲骨文公司進行開發。vmware虛擬機器即vmware workstation,開發商為vmware 中文名 威睿 2 安裝包的大小不同。virtualbox的安裝包比vmware workstation要小很多。3 收費制度不同。virtualbox是開...

域名虛擬機器有了後怎樣搭建,域名 虛擬機器有了後怎樣搭建

你這問題提得讓人有點看不懂。如果你是想問,有了虛擬機器以後如何搭建 域名伺服器。方法如下 2000和2003的系統在 開始 控制面板 新增或刪除程式 新增 刪除windows元件 網路服務 勾選 域名系統 dns 這樣dns服務就安裝了.然後是設定。在桌面 我的電腦 右鍵 管理 裡面的 服務和應用程...

關於虛擬機器的eth0是什麼?虛擬機器是怎麼上網的

虛擬機器有兩種方式上網 1 橋接方式,就是虛擬機器和實體電腦虛擬連線到一個交換機上。虛擬機器和實體機要同樣設定才能上網。2 nat方式 在最後面的那個圖的連線方式裡選 實體機做為閘道器,虛擬機器掛在實體機下面,如果虛擬機器是windows的話,裝好就能上網。本機有兩塊網絡卡,虛擬機器中的linux ...