同事推薦了一個虛擬機管理的工具 vagrant ,查了下發現果然不錯。試着裝了下,看安裝說明,需要裝virtualbox。也是一個虛擬機軟件,和VMware 有點類似。遂查了下幾個名詞的區別,順便和當下流行的容器 docker 的區別一併查了下,簡單記錄如下:
virtualbox

VirtualBox 是一款開源虛擬機軟件。VirtualBox號稱是最強的免費虛擬機軟件,它不僅具有豐富的特色,而且性能也很優異!它簡單易用, 可虛擬的系統包括Windows(從Windows 3.1到Windows10、Windows Server 2012,所有的Windows系統都支持)、Mac OS X、 Linux、OpenBSD、Solaris、IBM OS2甚至Android等操作系統。
docker

Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發佈到任何流行的 Linux 機器上, 也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口(類似 iPhone 的 app)。 幾乎沒有性能開銷,可以很容易地在機器和數據中心中運行。最重要的是,他們不依賴於任何語言、框架包括系統。
vagrant

Vagrant是一個基於Ruby的工具,用於創建和部署虛擬化開發環境。它 使用Oracle的開源VirtualBox虛擬化系統, 使用 Chef創建自動化虛擬環境。
virtualbox 和docker 比較
- 1、virtualbox,是創建硬件虛擬化的軟件,類似於vmware。Docker,則是不進行硬件的虛擬化,Docker虛擬化操作系統。
- 2、virtualbox,通常情況下,一個操作系統運行在硬件上,其中硬件和操作系統之間的通信是通過移動數據到內存地址, 然後發出命令來通知可使用該數據的硬件(或者是數據在被讀取時)。 在VirtualBox(或其它虛擬機)設置的環境中, 那些內存地址實際上是虛擬機軟件自身的內存區域,並且那些命令是由虛擬機而不是直接由底層的CPU解釋的。實際結果是, 你在VirtualBox中運行一個操作系統,對於這個操作系統來說,VirtualBox進程看起來像一台完整計算機,硬件以及所有配件都有。 實際上它不知道自己是在另一個進程中運行的。
- 3、Docker,它的作用是創建一個文檔系統,使其看起來像一個普通的Linux文檔系統,並且運行應用進程在一個所有文檔和資源都在文檔系統內的鎖定環境中。 事實上,該應用進程的容器並不模仿任何硬件,應用進程仍然在硬件上運行,它只是隔離了應用進程並允許您可以運行該應用進程跟特定的並且完全 不是主機操作系統的軟件和第三方庫合作。這意味着,在啟動或停止Docker應用進程時幾乎沒有開銷,因為它們不需要預先分配的內存和磁盤 空間等等。因此Docker容器很容易設置或者拆除。此外,容器在假裝需要系統中各種硬件組件上運行軟件的時候並不浪費任何開銷 – 它是直接使用 硬件的。
vagrant 和 docker 比較
針對 vagrant 和docker的區別,docker的作者Hykes有這樣的觀點。
最後可以說:Vagrant 適合用來管理虛擬機,而docker適合用來管理應用環境。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/272697.html