
在多數人眼中,NAS 的角色不外乎是用於檔案備份與媒體儲存,但實際上,廠商們一直十分積極在嘗試拓展 NAS 的應用範疇,從各類 NAS 專屬套件,到能在 NAS 安裝多系統的虛擬機應用等等,但在 Docker 這項技術 / 工具橫空出世之後,與 NAS 可謂一拍即合,Docker 具備了啟動快、資源佔用低,且能跨平台運行等特色,讓使用者得以在 NAS 平台上,建構出屬於自己的應用生態系,不論是部署私有雲服務、架設部落格網站,或是安裝多種開源工具,都讓原本靜態的儲存設備搖身一變,成為靈活的應用平台。而近幾年隨著 NAS 的硬體性能提升與智慧家庭趨勢,更推動了 Docker 在家用 NAS 環境的普及,透過本期特別企劃,我們將帶你一步步了解 Docker 是什麼,以及如何在 NAS 上部署並啟用應用程式。
- 延伸閱讀:群暉新措施惹議!25 Plus 系列 NAS 限制需用原廠或是官方認證硬碟,否則功能遭砍
- 延伸閱讀:CWWK針對NAS應用推出N7主機板,ITX尺寸搭載Ryzen 8845HS處理器
- 延伸閱讀:CWWK推出X86-P6 Pocket NAS迷你電腦,搭載Intel Core 3 N355處理器與4組M.2插槽
認識 Docker 與 NAS 的結合
所謂的 Docker,其實是一種輕量級的虛擬化技術,它允許開發者將應用程式與所需的作業環境封裝成一個「容器」,並能在任何支援 Docker 的環境下中運行,其概念與傳統的虛擬機器很類似,是透過軟體技術模擬出一個硬體的環境,但差別在於 Docker 不需要模擬出完整的作業系統,而是可以直接在裝置的主系統上執行容器,因此耗用的資源更少,僅需數秒就可啟動,遠比虛擬機器高效。即便 NAS 本身硬體資源有限,也能有效部署多種應用服務,並可透過 Docker Hub 等公共平台,輕鬆取得數以千計的第三方應用。
Docker 與 NAS 原生套件的差異
將 Docker 應用於 NAS,最大的優勢是可突破原生應用套件的限制,讓 NAS 的功能更為多元。許多 NAS 廠商如 Synology、QNAP 都提供了官方應用市集,其中的套件由官方或合作的開發者維護,除了更新頻率取決於廠商,選擇性也相對有限。但透過 Docker,用戶可以自行「安裝」最新版本的應用,甚至部署尚未在這些 NAS 平台上正式支援的服務,打造出完全功能客製化的 NAS。只不過相較於即裝即用的 NAS 原生套件,強調高自由度與靈活性的 Docker 容器,往往需要手動設定各項參數、掛載路徑、管理網路與權限,當容器內部出現錯誤時,診斷與除錯的難度也可能高,對初學者還是有一定的操作門檻。
Docker 是否會損害 NAS 資料?
另一個常見的疑慮,是 Docker 容器是否會對 NAS 的資料造成風險?基本上容器通常是與 NAS 檔案系統隔離的,除非使用者自行將重要的資料夾掛載到容器之中,否則容器崩潰不會影響 NAS 資料,換言之,只要在設定上謹慎管理權限與路徑,就不太需要擔心誤刪重要檔案。此外,從系統穩定性的角度來看,只要容器數量與資源分配妥當,同樣也不會影響 NAS 的基本功能。另一方面,NAS 廠商也正持續與 Docker 整合,讓部署變得更直覺,只要理解基礎原理,Docker 反而是能拓展 NAS 應用的強大助力。
使用 Docker 的前置準備動作
目前大多數 NAS 作業系統是基於 Linux,因此使用者可以透過 SSH(Secure Shell)連線,藉由輸入文字指令來安裝 Docker,不過這種方式實在太過於硬核,故對一般家庭用戶來說,比較建議的方式仍是透過各 NAS 廠商所推出的圖形化介面工具,來進行 Docker 的設定並管理,例如群暉的 Docker 套件、QNAP 的 Container Station⋯等等,基本上都需要先到官方軟體市集中選取並安裝,受限於篇幅,本篇將則以華芸的 AS5402T 進行示範,除了安裝 Docker Engine 之外,還需一併安裝 Portainer CE。
步驟 1:確認 NAS 的型號可支援 Docker,然後進入華芸 ADM 桌面點擊「App Central」。
步驟 2:在熱門 Apps 頁面可找到「Docker Engine」,按下「安裝」。
步驟 3:安裝完成後,再到類別中找到「虛擬化」項目,點擊進入。
步驟 4:接著安裝「Portainer CE」應用,可看到有 2 個版本,所使用的預設連接埠亦不同,按下「安裝」。
步驟 5:預設會勾選啟用通訊埠轉發以供外部連線,再次按下「安裝」即可。
Portainer CE 的初始設定
如前所述,Docker 並沒有官方 GUI 介面支援,因此華芸導入了另一套由Portainer 團隊所開發的免費開源應用 Portainer(Community Edition),其定位偏向於個人或小型團隊使用。Portainer 擁有易用且輕量化的 Docker 容器管理介面,目的是簡化 NAS 裡容器的管理與部署、用戶權限的管理,甚至還可以在 Portainer 中直接更新容器映像檔的版本,使用者即使對於 Docker 指令不熟悉,也能透過 Web 頁面的直覺操作,快速進入 Docker 的世界。
步驟 1:執行「Portainer CE」初次使用需先建立管理者帳號,輸入名稱及密碼,按下「Create User」。
步驟 2:進入快速設定畫面, 點擊畫面中的「Get Started」建立一個環境。
步驟 3:點選左側欄位「Environment-related」項目之下的「Environments」,再點擊右邊「local」連結。
步驟 4:於「Public IP」欄位輸入 NAS 的外部存取 IP 或是網址,再按下藍色「Update」按鈕即可。
步驟 5:設定完成後按下「Home」可以回到 Portainer 管理主頁面。
從 Docker Hub 下載應用程式映像檔
當完成 NAS 環境的初步設置後,接下來就可以開始從 Docker Hub 下載所需的應用程式映像檔。簡單來說,映像檔就像是容器的設計藍圖,使用者透過這份藍圖來生成容器,並透過該容器來執行對應的服務。Docker Hub 則是 Docker 官方的映像檔倉庫平台,開發者或企業可以將已打包完成的映像檔上傳至此,也能瀏覽和下載其他人所分享的映像檔,其標準操作語法採用「Push / Pull」的術語,代表映像檔的提交與取得,但為便於理解,這裡以「上傳 / 下載」作為替代。
步驟 1:登入 Portainer 之後,在管理主頁面點擊先前所建立的「local」環境。
步驟 2:然後會進入儀表板,點擊其中的「Images」項目。
步驟 3:接著在「Pull image」的欄目中,按下「Search」的按鈕來搜尋可下載的映像檔。
步驟 4:此時瀏覽器會另開一個新視窗,並跳至 Docker Hub 官方網頁。
步驟 5:如果不知道要下載哪一種 Image,也可以透過左側類別欄目來篩選。
步驟 6:亦可透過搜尋列搜索,這裡以「youtubedlmaterial」為例,選擇更新時間近且下載人數較多的版本。
步驟 7:點擊進入該映像檔的資訊頁後,可以按下右方「Copy」鍵複製指令檔。
步驟 8:將頁面往下滑,有些開發者會提供該應用程式的詳細說明與教學。
步驟 9:回到步驟 3 的 Portainer 頁面,將剛剛所複製的指令檔貼至 Image 的欄位。
步驟 10:注意要先將指令檔中的「docker pull」刪除後,再按下「Pull the image」按鈕。
步驟 11:等待下載完成後,該映像檔便會出現在下方列表,並標示「Unused」等待進一步部署。
利用映像檔來部署 Docker 容器
當你已經透過 Docker Hub 成功下載所需的映像檔後,接下來便可以透過Portainer 來部署對應的容器(Container)。相較於純粹使用指令操作,Portainer 提供了更為直觀的圖形化介面,有助於理解整體流程。不過,容器部署過程中仍涉及多項細節設定,對初學者來說可能略顯繁瑣,因此建議先從功能單純的應用著手。這裡以先前下載的「youtubedl-material」為例,這是一款能下載 YouTube 影片的便利工具,能下載影片、聲音檔,且不會像免費軟體一樣限制畫質或強迫看廣告,適合用來練習與入門容器部署。
步驟 1:一開始同樣在管理主頁面點擊先前所建立的「local」環境。
步驟 2:在儀表板點擊其中的「Containers」項目。
步驟 3:點擊右上角的「Add containers」。
步驟 4:自訂新建容器的名稱,然後在 Image 鍵入關鍵字,即可找到已下載的Image。
步驟 5:建議開啟「自動對映埠口」的開關,完成後按下「Deploy the container」進行部署。
步驟 6:容器部署完成會便會立即啟動,並顯示在容器列表之中。
步驟 7:往右可以看到其對外開放的通訊埠口,左邊的數字 32774 為主機的埠口,將其記錄下來。
步驟 8:開啟新瀏覽器視窗填入 NAS 網址,並在網址後鍵入埠口號碼「:32774」,便可開啟應用。
步驟 9:如同一般的影片下載器,貼上 YT 網址、選擇畫質即可按「Download」下載。
步驟 10:點入後可看到連影片資訊也可一併保存,並可另外下載至電腦或分享。
步驟 11:之後如果需要暫停、重啟或刪除容器,也可以透過 Portainer 的容器列表進行管理。
本文同步刊載於 PC home 雜誌
歡迎加入 PC home 雜誌粉絲團!
請注意!留言要自負法律責任,相關案例層出不窮,請慎重發文!