广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 9479 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
a8505212005
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x1 鲜花 x2
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[教学][其他] Synology NAS Docker 应用 (下):架设 Minecraft 伺服器

〈本文为下篇,上篇的连结为:Synology NAS Docker 应用 (上):使用 youtube-dl 下载各大影音网站的影片

〔上篇〕★ Synology NAS 进阶应用:Docker 套件 ★
〔上篇〕★ Docker 套件应用一:使用 youtube-dl 下载各大影音网站的影片 ★ 
〔上篇〕└ 架设动机与使用情境 
〔上篇〕└ youtube-dl 设置教学 
〔上篇〕└ 应用展示
★ Docker 套件应用二:架设 Minecraft 伺服器 ★ 
└ 架设动机与使用情境 
└ Minecraft 伺服器设置教学 
└ 应用展示
★ 总结与心得 ★







前一篇文章:使用 youtube-dl 下载各大影音网站的影片 是一个比较简单的 Docker 应用;接着就要介绍一款非常受欢迎的沙盒游戏 - Minecraft,也就是我们要利用 Synology NAS 的 Docker 套件来架设 Minecraft 伺服器。Minecraft 的游戏特色包括了探索世界、采集资源、合成物品及生存冒险等等,只要架设伺服器,就能和朋友一同游玩。
虽说桌上型电脑也能架设 Minecraft 伺服器,不过这里列举了几点用 Docker 架设 Minecraft 的优点所在:
〔使用 Docker 架设 Minecraft Server 原因之一:使用桌机架设十分耗电〕
由于家中的电脑也能开 Minecraft 伺服器,但不太可能 24 小时都开着,且电脑耗电量也比 NAS 高上许多。


〔使用 Docker 架设 Minecraft Server 原因之二:过去的教学已不适用,且管理不易〕
以前 Synology 若要架设 Minecraft 伺服器,以往的做法是去套件中心新增一个叫"社群"的套件来源,接着就能安装并下载 Minecraft 伺服器的套件了。不过目前在 DSM 6.2 版已经找不到此套件,而且缺点是开启后 Minecraft 伺服器运行极度不稳定,且更改游戏档案等动作都要透过 SSH 进入 NAS 系统内部来设定,十分不便。
简单来说,目前网路上提供的"利用 Synology 架设 Minecraft 伺服器"等教学大多都是 3 年以上的文章,除了过时不适用,这种方法在管理和维护上也非常麻烦。



〔使用 Docker 架设 Minecraft Server 原因之三:专属资料夹直接管理游戏档案〕
使用者能自订目标资料夹来存放 Minecraft 伺服器的档案,除了管理方便,甚至可以直接透过《文字编辑器》,线上更改游戏参数。



〔使用 Docker 架设 Minecraft Server 原因之四:日志查看记录、终端机直接下指令〕
过去笔者认为别家的 NAS 厂商在架设 Minecraft 是比较方便的(因为别家可能有提供专用 Minecraft 伺服器套件),但缺点仍然是不好管理。因此使用 Docker 来架设的话,日志能查看系统记录,而终端机还能直接下游戏指令。
PS. 下图为终端机页面,并输入 /help 指令之结果。






〔Step 1:打开《Docker》套件 → “仓库伺服器”页面搜寻”minecraft”,找到 itzg/minecraft-server 并下载〕搜寻 minecraft 后会出现许多不同人制作的映像档,我们下载拥有最多星星数的 itzg/minecraft-server。

〔Step 2:打开映像档的官方页面,来查看有什么变数需要额外设定。〕

点开映像档名称旁的蓝色箭头图示,并进入“Dockerfile”分页后,会看到许多指令及参数,我们一样先观察 EXPOSE 和 VOLUME 这两个指令参数即可。

不过 Dockerfile 无法看到明确的设定方式,要至“Dockerfile”分页来查看更详细的资讯。如下图所示,我们要设定一个 EULA = TURE 的参数,以及设定容器存放资料的路径 /data。

另外,光给容器设定参数不够,还要给它足够的权限来读取写入档案官方说明档能发现它预设的 user ID (UID) 和 group ID (GID) 都是预设 1000。而 Synology NAS 群组"users"的 GID 为 100、群组"administrators"的 GID 为 101;因此我们也要为容器更改 UID 或 GID 参数,像是把 GID 更改为 101(administrators群组),或是更改 UID 为 1024(admin 帐号)。

想知道 UID 或 GID 是多少的使用者,可以先到 DSM 的"控制台" → "终端机 & SNMP"页面,把"启动 Telnet 功能"和"启动 SSH 功能"打勾,然后按下套用。

接着下载 PUTTY 软体,打开后,在 Session 页面输入 NAS 的区网 IP(192.168.XXX.XXX),然后输入管理员帐号密码。成功登入后,只要在指令的地方输入"id",就会看到自己的 UID 和 GID 了。
PS. 查看完之后,务必到控制台把"Telnet 功能"和"SSH 功能"关闭。

〔Step 3:布署 Minecraft Server 映像档,并输入相关设定〕
回到《Docker》中,已下载的映像档会在”映像档”页面,我们按一下 itzg/minecraft-server,并按下”布署”按钮。

打开后,按下”进阶设定”,在”进阶设定”分页中按下”新增捷径至桌面”并选择"状态页面",如此一来以后在 DSM 主画面就能直接开启 Minecraft 伺服器的详细资讯页面。

接着到”储存空间”分页,这边就是要设定 Minecraft 伺服器的资料存放路径,我们选择 /docker/minecraft 路径(使用者自订);而挂载路径请输入 /data。
PS. 挂载路径所要输入的 /data,也就是前面文件提到 "to map a directory on your host machine to the container's /data directory"。

再来看到”连接埠设定”,这边都帮我们事先设定好了,不过这里将 本机连接埠 里的”自动设定”,分别手动更改为”25565″和”25575” Port(或是自订的 Port),如下左图。
PS. Port 25565 是连线 Minecraft 伺服器预设的连接埠,Port 25575 是 Minecraft Server RCON,也就是可远端控制 Minecraft 伺服器的程式 Port。
而”环境设定”分页中我们要新增两个参数,分别是前面提到的 EULA = TRUE 和给予容器读写的权限:GID = 101(或设定 UID = 1024),如下右图。

另外,”环境设定”分页还有许多关于 Minecraft 伺服器的初始设定,比较重要的是 MEMORY 的地方,预设是设定 1G,不过这边笔者建议是至少设定"NAS 所拥有 RAM "的一半;例如我的 DS916+ 有 8GB RAM,因此 MEMORY 参数设定就可提高到 4G,这样 Minecraft 伺服器也会跑得比较顺。
而其他参数如:PVP(true 或 false)、DIFFICULTY(easy 或 hard 或 normal 或 peaceful)、ONLINE_MODE(true 或 false)等,使用者可以在开服前先行设定;当然,之后在 server.properties 档也能再度更改游戏参数;设定完按下套用。

进阶设定完成,按下”下一步”,再按下”套用”,就会在精灵完成后立刻启动容器。

最后记得到路由器设定页面新增 25565 Port(Minecraft 伺服器的连线),以及 25575 Port(Minecraft Server RCON 程式),否则从外网无法连线到自架的 Minecraft 伺服器。






布署完的同时,打开DSM主画面 itzg-minecraft-server 的 Docker 图示,进入终端机页面会看到"Done!"开服完成的讯息(终端机画面倒数第三列),这时候只要打开 Minecraft 并输入 IP,就能开始游玩。PS. 过太久才进去终端机页面的话会没有东西,显示的讯息会移动到日志页面。

而在打开伺服器的瞬间,CPU 使用率大约会来到 70 %,之后才会慢慢掉到 5 % 以下。

接着去官网下载安装最新版本的 Minecraft(目前最新版本为 1.13)。成功开启后,按下"多人游戏",新增伺服器并输入 NAS 的 IP(如果当初设定的是自订 Port,则输入"IP:Port",例如 tw.yahoo.com:23456),按下"完成"后就会看到刚架设好的 Minecraft 伺服器。

加入伺服器后,就可以开始游玩了;整体来说游玩还算非常顺畅,只不过玩家移动太快的话,就有回溯的可能。而笔者也邀请朋友进来伺服器,如果"连接埠转传"有正确地被设定(Port 25565),从外网就可以进去自架的 Minecraft 伺服器。

不过上面都只是预设的设定,若使用者要更改伺服器设定(像是更改游戏难度、模式、最大玩家人数等)和更改地图(world 资料夹),透过《File Station》并打开当初设定的资料夹路径即可更改。

而修改伺服器设定也非常方便,有开过服的人都知道更改伺服器设定是透过 server.properties 档案,我们不用将档案下载、编辑,然后再重新上传;只要打开《文字编辑器》套件,把 server.properties 拉进去就能编辑档案了。

最后,笔者统整使用 Synology Docker 架设 Minecraft 伺服器的优点:
1. 虽然用电脑也能架设,但 24 小时开着电脑不仅耗电也耗费资源。
2. 原先用套件直接架设的方法已不适用,且管理上非常不易。
3. 具有终端机介面,使用者可以直接在终端机下伺服器指令,例如给予某人 OP 权限、BAN 某个玩家等。
4. 具有日志画面,可查看伺服器过去的事件记录,例如谁登入过游戏、哪个玩家达成什么成就等。
5. 《文字编辑器》能直接在 DSM 轻易地更改 Minecraft 伺服器参数,以往我们可能需将"设定档下载" → "电脑中编辑" → "重新上传" 才能更改设定档,十分的不便利。




Docker 应用非常广泛,同时运作多个容器也没问题;也因为每个容器都是独立建立并执行,如果发生了什么很严重的问题,顶多就是把该容器停止然后删除就行了,使用者不太需要担心。
另外,容器在布署上如果没有正确地设定参数,在启动的当下就会停止运作了。可能也会有人好奇想问:「在建立 Minecraft 伺服器的时候,我怎么知道只需要额外设定 EULA 和 UID 两个参数呀?」当时笔者在测试的时候也失败了很多次,这时候就要到"日志"的地方来查看有没有什么错误讯息

从上图可以发现,如果参数什么都没设定就布署,第一次会出现 Permission denied 的错误讯息,代表无法将资料写入 /data 资料夹(所以我们要设定 UID 或 GID 来更改权限);设定完权限后,第二次布署出现 Please accept the Minecraft EULA 的错误讯息,代表我们要设定一个 EULA = TRUE 的参数。一方面也是要到官方文件来寻找资讯,才能布署成功。
而 Synology 中的部分套件也是利用 Docker 来运作的,像是程式开发团队最常使用的协作版本控制软体:GitLab,使用者在 Synology NAS 上安装《GitLab》后,经过简单的设定后,就会被自动布署到 Docker 上运作。

最后笔者再提一个 Docker 比较有趣的应用,举例来说,常玩游戏的人可能都会使用 Discord 这个语音软体来和队友沟通,而 Discord 也有很多"Bot(机器人)"能丰富自己聊天群的功能,像是音乐机器人、群管理机器人,或是查游戏战绩的机器人等等;不过部分的 Bot 除非要你付费,不然功能限制就蛮多。这时候不妨到 Docker 上找相关应用,透过自己架设的 Discord Bot,功能就不必受限制!

这边附上网路上的教学文件【Docker —— 从入门到实践】,让想了解 Docker 的人能有更进一步的认识。



献花 x0 回到顶端 [楼 主] From:台湾中华电信股份有限公司 | Posted:2018-08-24 15:51 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.027287 second(s),query:15 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言