ColinC
发布于 2024-03-25 / 91 阅读
0
0

群晖 NAS 上使用 Docker 搭建 Minecraft 服务器

群晖 NAS 上使用 Docker 搭建 Minecraft 服务器 - /homes/colincai

我的世界基岩版最大的特性不就是跨平台么!

因为疫情的原因,手上的游戏都差不多被玩到腻了,突然想起之前买的 Win10 版我的世界都还没怎么玩,一时兴起就重新下载下来开搞。顺带也把 iOS 版的下载下来,但是问题就来了,如果两边分开搞有点不划算,所以决定自己开一个 MC 服务器来搞.

我的世界有 Java 版和基岩版两个版本,之前的 PE 主机现在也全部变为基岩版了。网易版我的世界是有中国特色的 Java 版,不再本文讨论范围之内.

MC 官方虽然没有提供 Docker 镜像,但官方提供了 Windows 和 Ubuntu 两个版本的服务器包:

https://i.loli.net/2020/03/05/lTBhHRzY2y6ti1b.png

所以我们要基于 Ubuntu 版本的服务器构建。基岩版虽然不像 Java 版有非常丰富的光影材质等,但是还是有一些材质包和行为包,而且考虑到版本升级的便携性,个人建议是以 Ubuntu 官方的镜像,直接通过 volume 的方式将 MC Server 挂到容器中。所以我们解决问题的思路就简单了

graph TB D –> B subgraph Docker A [获取 Ubuntu 镜像] –> B [建立容器并挂载目录到 /root/bedrock 目录,暴露 19132/UDP 端口] end subgraph mcserver C [下载最新程序包] –> D [解压到目录] end subgraph container B–>E [容器启动执行 MC Server] end

直接使用 ubuntu 的官方镜像在开启 mc 之后会出现找不到 libcurl 的问题。所以我们要确保 libcurl.3 的安装。而且官方 ubuntu 的镜像默认启动的命令是 /bin/bash 这肯定不是我们想要的,所以我们要准备一个脚本,在启动是确保依赖包的安装,并启动 mc 的服务器所以我们只需要准备一个脚本,让 ubuntu 启动时直接运行脚本即可.

记住,要在 linux 环境下将该文件赋予执行权限 chmod +x startmc.sh, 把这个文件放到 mcserver 目录下,然后将容器的启动命令设置为 /root/bedrock/startmc.sh 这样程序在第一次启动的时候就会自动安装 libcurl3 包然后启动基岩服务器.

如果需要更新服务器,只需要更新文件然后更新文件在重启容器就可以了.

启动游戏,在服务器界面添加服务器即可.

https://i.loli.net/2020/03/09/7XHTkMI9BxYzlLP.jpg

唯一需要注意的是,容器需要暴露的 19132 端口必须是 UDP.

当然,也有一些一键脚本比如:

在 Ubuntu 容器中使用一键脚本安装也可以实现,至于喜欢哪种方式。就看个人喜好了.


评论