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

简介:

作者:祝剑锋,毕业于西安电子科技大学,通信工程学院硕士,2015年8月加入网易蜂巢项目组,参与蜂巢核心功能的设计与开发工作。喜欢思考,热衷于写代码,开发一些实用的小工具。

 

网易蜂巢团队:为企业提供专业容器云平台,深度整合IaaS、PaaS及容器技术,提供弹性计算、DevOps工具链、微服务基础设施等服务,帮助企业解决IT、架构及运维等问题,使企业更聚焦于业务,是新一代的云计算平台。

 

 
 
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。

 

 

介绍下这个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构建自定义镜像,并用构建好的镜像创建容器.  

 

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

 

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

 

 
 
4
 
后记

 

本教程只是教大家用最简单的方式创建一个MC服务器,当然利用脚本可以让创建以及启动过程更优雅,定制性更强。例 如,利用Dockerfile的环境变量ENV配合脚本,可以生成一个完全定制化的server.properties。关于MC服务器如何配置的知识,后面有机会再跟大家分享。


本文来自云栖社区合作伙伴"DBAplus",原文发布时间:2016-10-20

目录
相关文章
|
11天前
|
存储 Linux Docker
docker在欧拉服务器上编译安装应该注意什么?如何操作?
【10月更文挑战第31天】docker在欧拉服务器上编译安装应该注意什么?如何操作?
34 2
|
23天前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
190 2
|
24天前
|
弹性计算 数据库连接 Nacos
阿里云ECS服务器在docker中部署nacos
docker pull nacos 失败,docker部署nacos遇到的问题,nacos数据库连接,nacos端口映射
91 1
|
1月前
|
网络安全 虚拟化 Docker
SSH后判断当前服务器是云主机、物理机、虚拟机、docker环境
结合上述方法,您可以对当前环境进行较为准确的判断。重要的是理解每种环境的特征,并通过系统的响应进行综合分析。如果在Docker容器内,通常会有明显的环境标志和受限的资源视图;而在云主机或虚拟机上,虽然它们也可能是虚拟化的,但通常提供更接近物理机的体验,且可通过硬件标识来识别虚拟化平台。物理机则直接反映硬件真实信息,较少有虚拟化痕迹。通过这些线索,您应该能够定位到您所处的环境类型。
27 2
|
28天前
|
前端开发 Docker 容器
主机host服务器和Docker容器之间的文件互传方法汇总
Docker 成为前端工具,可实现跨设备兼容。本文介绍主机与 Docker 容器/镜像间文件传输的三种方法:1. 构建镜像时使用 `COPY` 或 `ADD` 指令;2. 启动容器时使用 `-v` 挂载卷;3. 运行时使用 `docker cp` 命令。每种方法适用于不同场景,如静态文件打包、开发时文件同步及临时文件传输。注意权限问题、容器停止后的文件传输及性能影响。
119 0
|
弹性计算 运维 Kubernetes
使用ECS服务器学习Docker
使用ECS服务器学习Docker
使用ECS服务器学习Docker
|
5天前
|
机器学习/深度学习 人工智能 弹性计算
什么是阿里云GPU云服务器?GPU服务器优势、使用和租赁费用整理
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等多种场景。作为亚太领先的云服务提供商,阿里云的GPU云服务器具备灵活的资源配置、高安全性和易用性,支持多种计费模式,帮助企业高效应对计算密集型任务。
|
7天前
|
存储 分布式计算 固态存储
阿里云2核16G、4核32G、8核64G配置云服务器租用收费标准与活动价格参考
2核16G、8核64G、4核32G配置的云服务器处理器与内存比为1:8,这种配比的云服务器一般适用于数据分析与挖掘,Hadoop、Spark集群和数据库,缓存等内存密集型场景,因此,多为企业级用户选择。目前2核16G配置按量收费最低收费标准为0.54元/小时,按月租用标准收费标准为260.44元/1个月。4核32G配置的阿里云服务器按量收费标准最低为1.08元/小时,按月租用标准收费标准为520.88元/1个月。8核64G配置的阿里云服务器按量收费标准最低为2.17元/小时,按月租用标准收费标准为1041.77元/1个月。本文介绍这些配置的最新租用收费标准与活动价格情况,以供参考。
|
5天前
|
机器学习/深度学习 人工智能 弹性计算
阿里云GPU服务器全解析_GPU价格收费标准_GPU优势和使用说明
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等场景。作为亚太领先的云服务商,阿里云GPU云服务器具备高灵活性、易用性、容灾备份、安全性和成本效益,支持多种实例规格,满足不同业务需求。
|
13天前
|
弹性计算
阿里云2核16G服务器多少钱一年?亲测价格查询1个月和1小时收费标准
阿里云2核16G服务器提供多种ECS实例规格,内存型r8i实例1年6折优惠价为1901元,按月收费334.19元,按小时收费0.696221元。更多规格及详细报价请访问阿里云ECS页面。
51 9