当前位置: 首页 > 编程笔记 >

3分钟用Docker搭建一个Minecraft服务器

米夕
2023-03-14
本文向大家介绍3分钟用Docker搭建一个Minecraft服务器,包括了3分钟用Docker搭建一个Minecraft服务器的使用技巧和注意事项,需要的朋友参考一下

1 写在前面的话

作为一名资深游戏玩家,初次接触Minecraft(我的世界)时我是拒绝的,但玩了一段时间之后便欲罢不能。Minecraft(以下简称MC)作为一款沙盒类游戏,具有极高的自由度,想玩什么完全取决于你。你可以进行传统的荒野求生,打怪升级,可以建造各种风格的建筑,可以成为红石达人,实现各种自动化等等。这是一款最典型的“别人的游戏”,有大神在游戏里造了一个32位的计算机你能信?别人的世界,哦不,是我的世界就先介绍到这里。

言归正传,前段时间用网易蜂巢的容器搭了一个Minecraft原版生存服,那性能杠杠的。玩起来那叫一个6。想到广大小伙伴要么玩的单机,没法跟好基友一起愉快地玩耍;要么玩着别人开的有各种限制的服,各种不爽。因此特地整理教程一篇,造福广大 MCers。

2 如何搭建

众所周知,MC是JAVA编写的,无论是客户端还是服务端都直接是个jar包,因此前提条件就是需要有个jre。本人的MC服完全是手动搭建起来的,先跟大家简单讲下手动搭建的步骤。

1、创建一个Linux容器,ubuntu、debian、centos看你喜欢什么,我用的是debian

2、安装jre或jdk

3、安装基本的工具,tmux、vim

4、下载Minecraft的服务端文件

5、使用tmux将Minecraft服务端文件运行起来

6、进行基本的服务器配置

这里为什么要用tmux呢?因为我们开的是游戏服呀,我们要在不停服的前提下执行一些操作,比如添加op,ban掉某个ip等等,之后要让其继续在后台运行。tmux刚好满足这个需求,当然其他的工具也可以,只不过本人习惯用tmux而已。

可以看到手动操作还是比较麻烦的,那有更简单的方法嘛?答案是肯定的,网易蜂巢是基于Docker的容器云平台,利用Docker的特性,我们可以通过Dockerfile制作MC服务器镜像,然后使用该镜像创建一个容器就可以了,闲话不多说,直接上Dockerfile。

Docker,Minecraft服务器

介绍下这个Dockerfile,因为蜂巢官方有jdk的镜像,所以直接拿来用作基础镜像,然后装一些基本的工具。第2部分是创建一个目录用作工作目录,并将服务器文件下载到该目录下。第3部分是创建并设置MC服务器需要的文件,下面再具体讲。第4部分表示容器启动时的入口,使用tmux让服务端运行在后台,同时启用ssh登录。因为不确定大家创建容器时使用的规格,所以启动服务器时,并没有指定jvm的参数。

其中第2步,为了便于演示,我将服务器文件上传到了oschina的git库中。当然这里你可以替换成你自己想要下载的服务器文件地址,如果本地已经有下载好的文件,可以直接上传到容器中。

下面讲一下MC服务器需要的文件,其实这些文件的名字就很明显的告诉了你它们的作用。

第一个文件是eula.txt,字面意思,最终用户许可协议,你必须同意协议(文件中设置eula=true)才能正常启动服务器。当你没有创建该文件,服务器在第一次运行时,会自动创建eula.txt,同时告诉你必须同意协议才能继续启动。

另外一个很重要的文件是server.properties,这个文件里存放服务器相关的各种参数配置。具体各个参数的意义,大家可以直接去wiki查看。这里只讲一个跟登录相关的参数online-mode=true,该参数表示是否开启线上验证,什么意思呢,当开始线上验证,对每个登录的账号,服务器都会到Minecraft的账号系统里验证该账号是否合法,如果不合法会被拒绝登录。如果你希望在服务器启动时就关闭线上验证,可以在第3部分增加RUN echo online-mode=false > server.properties即可,但是当关闭线上验证时,则任何登录的账号都不会验证,直接登录的,也就是说你只要知道别人的用户名,就可以直接登录别人的账号,因此建议大家开启线上验证。

其他文件,如ip黑名单banned-ips.json、账号黑名单banned-players.json、op列表ops.json等,这里就不详细讲了,有兴趣的同学可以去wiki看下,文件结构都是很简单的。

3 开启MC之旅

使用Dockerfile构建自定义镜像,并用构建好的镜像创建容器,具体方法就不在这里展开了,大家可以参考蜂巢官方的帮助文档https://c.163.com/wiki/index.php?title=创建自定义镜像 以及 https://c.163.com/wiki/index.php?title=创建容器。

等容器创建完成后,打开Minecraft客户端,输入刚创建的容器外网ip,开启你的Minecraft之旅吧。

友情提示:众所周知,Minecraft是很吃内存的,因此还是建议大家使用内存1G以上的规格。

4 后记

本教程只是教大家用最简单的方式创建一个MC服务器,当然利用脚本可以让创建以及启动过程更优雅,定制性更强。例 如,利用Dockerfile的环境变量ENV配合脚本,可以生成一个完全定制化的server.properties。关于MC服务器如何配置的知识,后面有机会再跟大家分享。希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 本文向大家介绍Centos7使用docker搭建gitlab服务器,包括了Centos7使用docker搭建gitlab服务器的使用技巧和注意事项,需要的朋友参考一下 了解到docker的优点,搭建快,运行要求资源低,最重要的是实现的功能和效果都能达到预期,于是决定使用docker来搭建gitlab服务器。 效果图如下: 系统环境:CentOS Linux release 7.1.1503 (Co

  • 和Maven一样,Docker不仅提供了一个中央仓库,同时也允许我们搭建私有仓库。如果读者对Maven有所了解,将会很容易理解私有仓库的优势: 节省带宽,镜像无需从中央仓库下载,只需从私有仓库中下载即可 对于私有仓库中已有的镜像,提升了下载速度 便于内部镜像的统一管理 下面我们来讲解一下如何搭建、使用私有仓库 准备工作 准备两台安装有Docker的CentOS7的机器,主机规划如下(仅供参考):

  • 准备工作 安装软件 版本 功能 必要程度 Docker 1.12.1 Docker 是 CentOS7.0或其他系统 7.0 Docker的宿主机,本章的讲解都是在CentOS 7.0下进行的。Docker现已支持Windows系统,但考虑到绝大多数Docker容器还是跑在Linux环境下的,故而只讲解Linux环境下的使用。Windows下的安装使用大致类似,请读者自行研究。 是 Maven 3

  • 本文向大家介绍5分钟快速搭建FTP服务器的图文教程,包括了5分钟快速搭建FTP服务器的图文教程的使用技巧和注意事项,需要的朋友参考一下 一.什么是FTP FTP(File Transfer Protocol)是TCP/IP网络上两台计算机传送文件的协议,使得主机间可以共享文件. 二.搭建前期准备 1.首先打开控制面板找到“程序”点击打开,如下图所示: 2.在打开的“程序”窗口中,找到“启用或关闭w

  • 本文向大家介绍10分钟用python搭建一个超好用的CMDB系统,包括了10分钟用python搭建一个超好用的CMDB系统的使用技巧和注意事项,需要的朋友参考一下 CMDB 是什么,作为 IT 工程师的你想必已经听说过了,或者已经烂熟了,容我再介绍一下,以防有读者还不知道。CMDB 的全称是 Configuration Management Data Base,翻译下就是配置管理数据库,它存储与管

  • 前文提到的Dockerfile 可以让用户管理一个单独的容器,那幺如果我要管理多个容器呢,例如:我需要管理一个Web应用的同时还要加上其后端的数据库服务容器呢?Compose就是这样的一个工具。让我们看下官网对Compose的定义: Compose 是一个用于定义和运行多容器的Docker应用的工具。使用Compose,你可以在一个配置文件(yaml格式)中配置你应用的服务,然后使用一个命令,即可