天天看點

什麼是Docker?Docker與虛拟機有什麼差別?

什麼是Docker?

Docker是一個開源的應用容器引擎,它基于go語言開發,并遵從Apache2.0開源協定。使用Docker可以讓開發者封裝他們的應用以及依賴包到一個可移植的容器中,然後釋出到任意的 Linux 機器上,也可以實作虛拟化。Docker 容器完全使用沙箱機制,互相之間不會有任何接口,這保證了容器之間的安全性。

Docker誕生于2013年初,目前有兩個版本,Community Edition(CE,社群版)和Enterprise Edition(EE,企業版)。其中Docker社群版是免費開源的,對于個人和小團隊來說是比較理想的選擇;Docker企業版則是收費的,是專門為企業和大型IT團隊提供的,用于要求比較嚴格的商業應用中。

什麼是Docker?Docker與虛拟機有什麼差別?

Docker的特點

在學習一項技術時,了解該技術的特點才能更好地實際運用。Docker 作為目前主流的一個開源容器引擎,其主要特點如下。

1、更快速的傳遞和部署

開發者可以使用一個标準的Docker鏡像來建構一套開發容器,開發完成之後,運維人員可以直接使用這個容器來部署代碼。Docker 可以快速建立容器以及快速疊代應用程式,并讓整個過程全程可見,使團隊中的其他成員更容易了解應用程式是如何建立和工作的。Docker容器輕,且啟動速度快,可以大量地節約開發、測試和部署的時間。

2、更高效的虛拟化

Docker 容器在運作時,不需要額外的虛拟機程式的支援。由于它是核心級的虛拟化,是以可以實作更高的性能和效率。

3、更輕松的遷移和擴充

Docker 容器幾乎可以在任意的平台上運作,包括實體機、虛拟機、公有雲、私有雲、個人計算機和伺服器等。這種良好的相容性可以讓使用者把一個應用程式從一個平台直接遷移到另外一個平台,十分有利于應用的遷移和擴充。

4、更簡單的管理

使用 Docker,隻需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分發和更新,進而實作自動化并且高效的管理。

除上述幾個特點外,Docker還具有實作邏輯分離、适合與面向服務的架構配合使用等特點。

Docker與虛拟機的差別

了解了Docker的概念和特點後,相信很多人對Docker與虛拟機的差別會産生疑惑,那麼它們到底有什麼不同呢?下面通過一張對比圖來說明兩者的主要差別,如下圖所示:

什麼是Docker?Docker與虛拟機有什麼差別?

從上圖的對比中可以看出,虛拟機是運作在每個應用層級的用戶端作業系統上的,這是資源密集型的。由于産生的磁盤鏡像和應用程式的作業系統設定互相交叉,是以導緻虛拟機對系統的依賴性很強,一旦系統出現問題,虛拟機依賴的檔案以及安全更新檔等都可能會出現檔案丢失的情況。

Docker中的容器是基于程序的隔離,多個容器可以共享單個核心,并且建立 Docker 容器的鏡像所需要的配置并不依賴于主控端系統。正是因為容器之間配置的隔離性,容器之間就沒有配置交叉,是以Docker的應用可以運作在任何地方。

Java中級程式員學習路線圖 : http://yun.itheima.com/map/javaeetree?2020zylyk

繼續閱讀