
〈本文為上篇,下篇的連結為:Synology NAS Docker 應用 (下):架設 Minecraft 伺服器〉
市面上有著許多廠牌的 NAS(Network Attached Storage,網路附加儲存),每家都有著不同的使用介面與其主打功能;而本次筆者要介紹的 Synology - 也就是群暉科技的 NAS,擁有淺顯易懂的介面及說明、完善的功能,以及各種企業解決方案等,非常適合家用、進階使用者和中小企業等客群來使用。
PS. 下面是一些常用的 Synology 官方應用程式。

目前本人使用的這台 Synology DS916+ 已推出兩年以上,具兩個 Gigabit (RJ-45) 網路孔、三個 USB 3.0 連接埠(正面一個、背面兩個),以及一個 eSATA 孔;而這台擁有 4 Bay 的硬碟槽,且安裝 3.5 吋硬碟時無需拴螺絲(使用邊條固定於硬碟托盤上),安裝上十分方便。另外,NAS 背後有兩個大風扇,提供絕佳的散熱能力。

DS916+ 搭載 INTEL Pentium N3710 1.6GHz(4C4T, up to 2.56 GHz) ,使用的 DSM(DiskStaion Manager) 版本為 6.2。這台在當時算是為專業用戶設計的機種,由於筆者自行加到 8GB RAM,同時進行監控、虛擬機、影音/相簿、BT下載、架站等應用絕對是綽綽有餘的。

雖然群暉內建了許多應用程式,總會有一些進階使用者找不到的應用,而 Docker 套件就能解決這個問題。Docker 擁有各種開發者所創造的上萬種容器應用程式,讓無法在 Synology NAS 上執行的應用程式都可於 Docker 進行佈署。

另外,Docker 套件並非所有 Synology NAS 都能使用,用戶需先確認自己或欲添購的機種是否支援 Docker 套件的安裝:Docker 套件適用機種。而這次筆者要介紹的兩大影音娛樂方面應用就是:「使用 youtube-dl 下載各大影音網站的影片」,以及「架設 Minecraft 遊戲伺服器」。

★ Synology NAS 進階應用:Docker 套件 ★
★ Docker 套件應用一:使用 youtube-dl 下載各大影音網站的影片 ★
└ 架設動機與使用情境
└ youtube-dl 設置教學
└ 應用展示
〔下篇〕★ Docker 套件應用二:架設 Minecraft 伺服器 ★
〔下篇〕└ 動機與使用情境
〔下篇〕└ Minecraft 伺服器設置教學
〔下篇〕└ 應用展示及密技介紹
〔下篇〕★ 總結與心得 ★
本次筆者要介紹的就是專業用戶會玩的 Synology NAS 套件:Docker(Synology Docker 官方介紹頁面)。

Docker 是一個輕量級的虛擬化環境,讓應用程式布署在軟體容器下的工作可以自動化進行。簡單來說,Docker 就是在不同且隔離的容器裡建立及執行多個應用程式,且彼此互不影響。
首先到《套件中心》,接著在搜尋欄輸入”docker”並安裝套件。

接著打開《Docker》套件,畫面中會跳出提示”開啟說明頁”的畫面。

說明頁(Synology 網頁版說明頁面)能讓剛接觸 Docker 的新手有更進一步認識,裡面有”建立容器”、”一般設定”、”網路設定”和”DDSM”,也就是 Docker DSM 的簡易設定說明。

回到《Docker》,在 “概況”頁面會顯示執行中的容器,包含它的 CPU 使用率和 RAM 的使用量。

而 Docker 也能架設獨立的 DSM,除了一些需要額外授權的套件,例如《Surveillance Station》、《MailPlus》等不能用之外,基本上多數套件在 Docker DSM (DDSM) 都能使用。
PS. Docker 中僅能架設”一套”免費的 DSM,額外架設另需付費。

《Docker》也能直接於”倉庫伺服器”頁面中搜尋 Docker Hub 上的各種容器應用,並且可以直接進行下載,十分方便。

從”倉庫伺服器”下載下來的映像檔,會顯示於”映像檔”頁面中,使用者能進行佈署,也就是讓它在自己的 NAS 上運作。

由於大多數的情況下,在建立容器時需要進行變數設定,因此使用者必須要先到映像檔的官方頁面,來查看有什麼變數需要額外設定。

佈署完成後,在”容器”頁面可以對每個容器查看詳細資訊,或是將容器打開/關閉。

接著我們隨意打開一個容器的詳細資訊,分別有”概況”、”程序”、”日誌”,以及使用者能在這裡自行下指令的”終端機”頁面。

架設動機與使用情境 |
說明完《Docker》套件的介面之後,筆者要先來介紹一個簡單的 Docker 應用:使用 youtube-dl 來下載各大影音網站的影片。
根據官方說法,目前 youtube-dl 支援上千種影音網站的影片下載,用戶只要把該影片網址複製後貼到 youtube-dl,它就會自動下載最高畫質的影片。

但是有人可能會說:網路上可以下載 YouTube 影片的網站一堆呀?因此這邊筆者也找了幾個下載 YT 影片的網站,來看看普通網站到底有何限制所在。
〔情況一:下載連結要等好久,不然就是打不開〕
如圖所示,貼上影片連結就要等它轉圈圈轉好久…

〔情況二:強制跳出廣告頁面〕
很多影片下載網站為了營利,都會有內嵌廣告,或是在按下”下載”時,強制跳出廣告。

〔情況三:無法下載到最高畫質〕
根據 YouTube 的畫質設定中,”一日幕僚”這支影片最高支援 1080P 的畫質,但是”買噹噹影片下載工具”只提供了 720P 影片下載連結。

〔情況四:雖然可以下載最高畫質,卻是無聲音的影片〕
好不容易找到一個支援 1080P 影片畫質的下載網站,卻只能下載無聲音的版本…

因此透過自架的 youtube-dl,不管在哪,只要打開該頁面並且輸入影片網址;而在送出的同時,NAS 就會自動下載影片,然後將影片儲存至 NAS 之中。

下載好的影片,我們再將它移動到 Video Station 的影片庫索引資料夾中。如此一來,透過《Video Station》就能和其他成員一起共享影片,或是利用『DS video』App,在行動裝置線上/下載觀看。

youtube-dl 設置教學 |
〔Step 1:打開《Docker》套件 → “倉庫伺服器”頁面搜尋”youtube-dl”,找到 kmb32123/youtube-dl-server 並下載〕
搜尋 youtube-dl 後會出現許多不同人製作的映像檔,我們下載的是擁有網頁 gui 介面的 kmb32123/youtube-dl-server。

〔Step 2:打開映像檔的官方頁面,來查看有什麼變數需要額外設定。〕

其實設置 Docker 容器最難的地方就在這,使用者必須看好有哪些參數需要另外設定,直接佈署的話很容易就失敗。
點一下映像檔名稱旁的藍色箭頭圖示,並進入“Dockerfile”分頁。雖然大多的指令參數都不用理會它,但 EXPOSE 的 8080 Port 和 VOLUME 的 [“/youtube-dl”] 會在後面用到,一個是 youtube-dl 網站的入口 Port,一個是影片下載的檔案位置。

然後到“Repo Info”分頁,上面提到使用此映像檔的方式,就是瀏覽器打開 http:// [NAS位址]:8080/youtube-dl ,然後輸入影片位址即可。

〔Step 3:佈署 youtube-dl 映像檔,並輸入相關設定〕
回到《Docker》中,已下載的映像檔會在”映像檔”頁面,我們按一下 kmb32123/youtube-dl-server,並按下”佈署”按鈕。

打開後,按下”進階設定”,在”進階設定”分頁中按下”新增捷徑至桌面”,網頁中輸入網址 http:// [NAS的IP]:8080/youtube-dl (預設 Port 為 8080,或是自訂的 Port)。

接著到”儲存空間”分頁,這邊就是要設定下載後的影片檔案位置,這邊選擇 /video 路徑(使用者自訂);而掛載路徑請輸入 /youtube-dl。
PS. 掛載路徑所要輸入的 /youtube-dl,也就是前面文件提到的 “VOLUME”。

再來看到”連接埠設定”和”環境設定”分頁,這邊都幫我們事先設定好了,不過建議將 本機連接埠 裡的”自動設定”,手動更改為”8080” Port(或是自訂的 Port,如果不是設定 8080,則 youtube-dl 網址的 Port 也要更改);輸入完按下套用。
PS. 容器連接埠的 8080 Port,也就是前面文件提到的 “EXPOSE”。

進階設定完成,按下”下一步”,再按下”套用”,就會在精靈完成後立刻啟動容器。

最後記得到路由器設定頁面新增 8080 的外連 Port(或是自訂的 Port),否則從外網無法連線到自架的 youtube-dl 網站。

應用展示 |
由於我們剛剛有新增網站捷徑至桌面,按一下就能打開 youtube-dl 網頁;或是在網址列輸入 http://[NAS位址]:8080/youtube-dl 也一樣能進入。

接著實測超簡易的下載方式,只要複製影音連結,貼至 youtube-dl 網頁並按下”Submit”後,看到白底的網頁寫了”Success: true”就完成了。

如果到”終端機”分頁會看到正在下載的詳細資訊,而終端機顯示的內容也會移至”日誌”分頁中,方便未來查看。

筆者測試了三大影音網站:YouTube、Facebook 和 Twitch 都能正常下載 Full HD(1080P) 的影片,包含前面提到”一日幕僚”這支 YouTube 影片,1080P 是沒有問題的。

YouTube 的播放清單也能一次打包下載,可以看到終端機畫面中,一支接著一支影片不中斷地下載。

不過筆者在實測上也遇到一些限制,包含 4K 的 YouTube 影片,youtube-dl 只會下載 1080P 畫質;此外,雖然官方說明可以下載”愛奇異”的影片,但由於此容器的作者已經四個月沒有更新容器版本了,目前測試無法下載(也有可能是地區限制的關係),錯誤訊息如下圖。

如此一來,下載的影片就能集中管理;不過比較可惜的是,目前 Synology NAS 的限制是:Docker 將影片新增到 /video 資料夾的這個行為並不會觸發影片索引的動作。一種解決方式是另外設定排程任務來定期移動影片檔案,否則就要使用者自行手動將檔案移動至 Video Station 索引資料夾中。

移動影片後,透過《Video Station》就能觀看 youtube-dl 下載的影片,不管要和朋友分享或是在手機上觀看,通通沒問題!

最後,筆者統整使用 Synology Docker 架設 youtube-dl 來下載影片的優點:
1. 下載十分方便,不管在家或在辦公室,打開 youtube-dl 網站並貼上影音網址,就會自動開始下載。
2. 支援 FB影片、YouTube影片和播放清單,和 Twitch 等各大影音網站。
3. 自動偵測下載最高畫質(1080P) 的影片。
4. 下載後的影片通通能在 NAS 中的指定資料夾進行集中管理,而《Video Station》套件還能直接觀看這些影片,非常方便。