
〈本文为上篇,下篇的连结为:
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,在行动装置线上/下载观看。

〔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://xn-...as 也一样能进入。
接着实测超简易的下载方式,只要复制影音连结,贴至 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》套件还能直接观看这些影片,非常方便。