什麼是Docker?

  Docker對我們大多數人來說並不是一個新詞, 它無處不在。 但究竟Docker

是什麼?

很簡單,Docker是一個軟件集裝箱化平臺,這意味著您可以構建應用程序,將它與其依賴關係一起打包到一個容器中,然後這些容器可以很容易地運送到其他機器上運行。

  好的,但什麼是集裝箱?

集裝化(也稱為基於容器的虛擬化和應用程序集裝箱化)是用於部署和運行分佈式應用程序的OS級虛擬化方法,無需為每個應用程序啟動整個VM。 相反,多個獨立的系統(稱為容器)在單個控制主機上運行並訪問單個內核。

容器映像是一個輕量級的、獨立的、可執行的軟件包,它包括運行它所需的一切:代碼、運行時、系統工具、系統庫設置。

  所以主要目標是將軟件打包成標準化的單元進行開發,發貨和部署。

  例如,假設有一個用Scala和R編寫的Linux應用程序。因此,為了避免Linux,Scala和R發生任何版本衝突,Docker只會將此應用程序包裝在具有所有版本和依賴項的容器中,並部署 它在任何操作系統或服務器上都沒有任何版本麻煩。

  現在,我們需要做的就是運行這個容器,而不用擔心依賴的軟件和庫。

什麼是Docker?

  所以,這個過程非常簡單。 每個應用程序將在單獨的容器上運行,並將擁有自己的一組庫和依賴項。 這也確保了進程級別的隔離,這意味著每個應用程序獨立於其他應用程序,從而使開發人員可以確保他們可以構建不會相互干擾的應用程序。

容器vs.虛擬機

  容器是應用程序層的抽象,它將代碼和依賴關係打包在一起。 多個容器可以在同一臺計算機上運行,並與其他容器共享操作系統內核,每個容器都作為用戶空間中的獨立進程運行。 容器佔用的空間少於虛擬機(容器圖像的大小通常為幾十MB)並且幾乎立即啟動。

什麼是Docker?

  正如您在集裝箱中看到的那樣,有一個主機操作系統,然後在上面將會有容器具有每個應用程序的依賴關係和庫,這使得處理和執行速度非常快。 這裡沒有客戶操作系統,它利用主機的操作系統,與虛擬機不同,在需要時共享相關的庫和資源。

虛擬機(VMs)是將一臺服務器變成多臺服務器的物理硬件的抽象。 管理程序允許多臺虛擬機在單臺機器上運行。 每個VM都包含一個操作系統的完整副本,一個或多個應用程序,必需的二進制文件和佔用數十GB的庫。 VM也可能啟動緩慢。

什麼是Docker?

  在這種虛擬化的情況下,有一個主機操作系統,其中有3個客戶操作系統在運行,它們只不過是虛擬機。 但是,在同一主機操作系統上運行多個虛擬機會導致性能下降,因為每個虛擬機都有自己的內核和一組庫以及依賴關係。 這佔用了大量的系統資源,如硬盤,處理器,特別是RAM。

  所以,這是對Docker,集裝箱化和虛擬化的簡要概述。

更多閱讀





分享到:


相關文章: