4 回答

TA貢獻2080條經(jīng)驗 獲得超4個贊
virtualbox 就是傳統(tǒng)的虛擬機方式,直接在程序?qū)用妫M一個硬件環(huán)境,模擬環(huán)境內(nèi)的程序和模擬的硬件環(huán)境做交互,再由虛擬機軟件把模擬硬件的調(diào)用轉(zhuǎn)換為外部程序指令去和硬件再交互來工作。vagrant 等于就是一個輔助工具,讓你更好的制作 virtualbox 虛擬機里面的系統(tǒng)以及方便的與其交互等等工作。
docker 等于是脫離了 virtualbox 的虛擬機模擬硬件再轉(zhuǎn)換成指令繼續(xù)和真實硬件交互操作的額外步驟。應(yīng)用程序直接就能使用自己所處計算機的真實硬件,運行效率更高。通過 docker 軟件的隔離封裝機制來讓程序有自己獨立的空間。
關(guān)系層面虛擬機和這種封裝沒啥共通點,但是也都是把程序獨立出來運行的辦法。你可以認為虛擬機靠模擬的硬件進行隔離操作,docker 是靠模擬一套函數(shù)接口進行隔離操作。

TA貢獻1789條經(jīng)驗 獲得超10個贊
vagrant 是一個非常好用的工具,可以用它來在單臺物理機器編程管理多個虛擬機(vms)。其支持原生VirtualBox,并同時提供了對VMware Fusion、Amazon EC2虛擬機集群的插件支持。
vagrant提供了極易使用、基于Ruby的內(nèi)部DSL,允許用戶使用它們的配置參數(shù)定義一個或多個虛擬機。另外,對于自動部署,vagrant支持多種機制:可以使用puppet,chef或者用于在vagrant配置文件中定義的所有虛擬機上自動安裝軟件程序和配置的shell腳本等。
所以,使用vagrant可以在運行著多臺vm的系統(tǒng)上定義復(fù)雜的虛擬框架,是不是很酷?
vagrant的典型使用案例是以簡單并且一致的方式構(gòu)建工作或者開發(fā)環(huán)境。在Eligotech(原作者公司)公司里,開發(fā)人員正在開發(fā)一個產(chǎn)品,目標(biāo)是讓用戶簡單的使用Apache Hadoop、CDH(Cloudera的開源版本)。開發(fā)人員經(jīng)常是為了測試需要在機器上安裝hadoop環(huán)境。他們發(fā)現(xiàn)vagrant在這方面是一個非常便利的工具。

TA貢獻1884條經(jīng)驗 獲得超4個贊
技術(shù)棧只是普通LAMP,我不建議引入docker,vagrant,生產(chǎn)環(huán)境部署或許有一點用,但也只是docker,vagrant基于virtualbox,幫不上多少忙,復(fù)用率高不到哪里去。技術(shù)棧復(fù)雜到一個新人架設(shè)開發(fā)環(huán)境非常麻煩的時候,vagrant才能發(fā)揮作用,為團隊節(jié)省時間。開發(fā)機多數(shù)情況畢竟只需要架設(shè)一次。況且通常團隊不能假設(shè)都很熟悉docker,vagrant,如果沒有配套的工作時培訓(xùn)熟悉,恐怕使用這些技術(shù)只會反而增加整個上手難度,增加開發(fā)成本。LAMP開發(fā)環(huán)境假設(shè)非常簡單,工具很成熟,90%的情況也就是apt-get install一下,并不麻煩。
添加回答
舉報