Docker還是虛擬機?NAS用戶的靈魂拷問解答!

引言

在文章開始之前熊貓想先問一下大家,不知道大家日常使用是Docker用的比較多還是虛擬機用的比較多呢?

每次提起虛擬化,各個平臺都會有不同的聲音,到底是選擇docker-compose.yml還是用VM快照,亦或者雙修?這個應用應該部署在Docker還是虛擬機呢?兩者其實都能做到“隔離與效率”,Docker憑藉着"集裝箱思維"顛覆了傳統虛擬化技術,如今如果誰家NAS自帶沒有Docker套件,那麼銷量一定是不高的;而虛擬機技術則是硬件級的虛擬化,擁有更強的安全性和穩定性,不過獨立的操作系統和資源也帶來了更大的性能負擔,這也是爲什麼很多NAS玩家在使用虛擬機時會選擇精簡的操作系統鏡像的原因。

其實這是上個月有粉絲問我的問題,他在考慮他部署的項目是直接用虛擬機部署還是通過Docker實現,而今天熊貓藉着粉絲這個問題,也就和大家一起探討一下這兩者的區別以及各自的優勢特點。

硬件級虛擬化-虛擬機(VM)

本次使用的機型爲鐵威馬的F6-424MAX,熊貓家裏很多NAS設備,之所以考慮用鐵威馬來作爲例子,其實更多的是考慮目前我所知道的NAS中只有鐵威馬的虛擬機應用VBOX沒有進行大量魔改,擁有原生的一些特性和功能,而在Docker方面鐵威馬自身的Docker Manager擁有完善的功能、極強的管理以及深度的權限。

首先來說說虛擬機應用,鐵威馬用到的爲VirtualBOX,經常玩虛擬機的相信對這個軟件並不陌生,作爲一款開源的虛擬機軟件,VirtualBOX擁有非常強的兼容性,圖形化的界面也非常易用,對於資源的分配也很靈活,加上擴展性非常強,能直接利用到F6-424MAX的外置界面實現更豐富的擴展性,所以其實很多NAS的虛擬機都用的VirtualBOX進行再次開發,不過鐵威馬保留了VirtualBOX原生性。

通過TOS的應用商店下載應用,打開會自動彈出新的窗口,默認賬號和密碼都爲admin。VirtualBOX的整個管理都在新的界面進行,默認是英文界面,需要我們點擊右上角的File-Preferences-Language去切換一下語言。

虛擬機的創建非常簡單,將下載好的ISO鏡像文件放在“VirtualBox”的虛擬機文件夾中,回到VirtualBOX虛擬機界面,點擊新建,根據自己想創建的虛擬機環境選擇對應的類型和版本即可,例如熊貓這裏用到的爲Win10系統。

隨後分配虛擬機的內存大小、虛擬硬盤大小。

在虛擬硬盤的文件類型上我們選擇VirtualBOX的原生格式VDI就行,存儲分配的話選擇動態分配即可。

最後創建完成會得到這樣的畫面,是不是很像PVE的管理界面。因爲默認創建是沒有加載ISO鏡像的,所以我們還需要給虛擬機指定鏡像文件。右鍵虛擬機選擇設置,在彈出的界面選擇存儲,默認是沒有光盤,所以我們需要選擇我們的ISO鏡像文件。

網絡設置選擇橋接網卡,根據需求選擇對應的網口。

這時候就可以直接啓動虛擬機了,啓動之後VirtualBOX會給虛擬機生成一個遠程端口,點擊端口會自動下載.DRP文件,通過這個文件就能直接聯通遠程桌面協議訪問虛擬機了。

剩下的Win系統安裝步驟就不需要我多介紹了,至此一個虛擬化的操作系統也便完成了。

其實創建虛擬機很簡單,但對於NAS而言虛擬機能做纔是重點。

鐵威馬因爲用的是原生VirtualBOX應用,所以在虛擬機的支持上會比其他NAS要好很多,同時在設置的靈活性上也要更爲方便。在設置中能看到對於系統、顯示、存儲、聲音、網絡以及串口和USB設備的設置修改項,這其實在很多其他NAS是不能進行修改的,往往在創建之後就定死了。

但如果要用虛擬機來進行Windows Server或者Ikuai的部署,那必定需要用到網口配置,亦或者你需要用NAS搭建虛擬機作爲沙盒使用,需要進行自己的程序驗證測試等工作,那麼USB的設置也就非常重要。

VirtualBOX讓我最喜歡的點其實是他的快照功能,熊貓使用虛擬機的一般都是用來進行項目測試,因爲搭建環境、應用安全性的各種原因,折騰的過程其實很多時候系統容易崩掉,VirtualBOX不管是創建還是恢復都非常方便快捷。

總的來說虛擬機更適合運行多個不同操作系統,對隔離性和安全性要求較高的任務,不過因爲其佔用資源比較大,所以如果真的要使用虛擬機建議NAS至少保留8G及以上的內存,以確保系統運行流暢。

操作系統級虛擬化-Docker

和虛擬機應用VirtualBOX一樣,鐵威馬的Docker除了提供了自身體驗不錯的Docker Manager使用,還在應用商店內置了Portainer,不過建議後續鐵威馬能把這個應用換成中文鏡像,默認英文操作起來還是比較麻煩。

Portainer相對更爲偏向於團隊管理,日常使用其實更多的還是用Docker Manager,功能齊全且界面UI操作也更爲直觀,加上鐵威馬擁有完全開放的Docker權限,Docker Manager的體驗個人覺得是非常不錯的,單說權限開放這一點很多非專業性的NAS就滿足不了。

Docker Manager支持Docker-compose容器堆棧,對於一些大型項目的部署效率能提高不少,同時docker-compose的部署方式也利於後期容器的修改和遷移,即便是容器出問題也能通過docker-compose.yml及時恢復。

Docker Manager的堆棧支持本地yml和上傳yml文件,也支持直接創建,創建之後可通過驗證來檢查語法是否錯誤,不過這裏還是給鐵威馬提一個意見,目前鏡像源不支持加速鏡像地址設置,非常不方便,建議後期可以更改一下。

總結

根據虛擬機和Docker容器的各種特性,熊貓這裏也做了個圖表來進行對比。

從兩者的特性對比可以得到結論,虛擬機更適合多個不同操作系統的使用,同時在隔離性和安全性上虛擬機會有更好的保障,比較適用於傳統IT環境中的服務器虛擬化項目;而Docker容器則擁有快速開發、測試和部署應用的特性,加上堆棧的功能更適用於分佈式應用的部署。

最後還是要說明,這兩者並不衝突,虛擬機能提供強隔離性、多操作系統支持和穩定的基礎環境,而Docker提供輕量化、高效利用資源和快速部署的能力,通過兩者的結合可以實現混合部署、多操作系統支持、混合工作負載等等場景。

更多遊戲資訊請關註:電玩幫遊戲資訊專區

電玩幫圖文攻略 www.vgover.com