本来我是不想重复造轮子,毕竟docker部署我的世界(以下简称MC)教程很多,但是我后面仔细看了下,基本上都是什么原版或者是docker上有的模组服,但如果自己想玩的模组服没有,那基本上还是需要手动部署下,本篇就是用docker部署各类MC模组服。
什么是docker?什么是MC?我就不想多解释了,如果不了解的我想也不会看这篇文章。开头我要说一下,其实我这个和直接在操作系统(linux)上部署MC本质上是一样的,就你开个虚拟机或者是直接裸机部署,也是我这个步骤,哪为什么要搬到docker呢?因为在虚拟机里面部署的话性能没有docker的好,容器化的性能肯定是要比虚拟机好;第二个呢在虚拟机部署还需要手动安装系统,比较麻烦,而且后面导入导出都不方便,如果docker就方便点,起码不用手动安装操作系统;至于为什么不裸机部署,那难道你会在群晖等nas系统上直接部署各类服务吗?
一、部署docker-alpine系统
因为我们需要部署任意自己想要的模组服,所以一定是需要自己手动部署的,除非docker上有人之前上传你想玩的模组服那可以直接用,不然都是需要自己部署的。什么,docker无法拉取镜像?往期文章有解决办法,自行翻看。
这里本质上就是在docker-linux系统内运行mc,那刚刚也说了,和你直接在虚拟机/裸机部署mc是一样的,那为什么用docker部署我刚刚也说了,如果你还是要杠,那你是对的。我这里是用的alpine系统,当然其他的debian或者乌班图系都可以,我用alpine是因为它最省资源,部署mc也没问题。
至于部署docker-alpine没啥难度,下载alpine镜像部署就行,需要注意的是网络部分,需要映射25565(mc链接端口),25565则是mc游戏链接的端口,当然也可以选择macvlan单独给docker分配独立的ip,我这里为了简单就映射对应的端口。还需要映射一个目录用来存放mc服务端文件,这里容器内部目录可以自定义,我就设置了/root/mc-server,如果你想设为其他路径都行,这个没影响,反正是docker内部的目录。
部署好后就可以启动docker-alpine了(以下我简称alpine,不再赘述docker环境)。我们还需要进入到docker终端,这里终端连接命令是“/bin/sh”而不是常规的“/bin/bash”,因为alpine默认是没bash环境。进入终端就可以查看到已经有"/root/mc-server"文件夹了。
二、下载mc服务端
这个似乎没啥好说的,想玩啥模组自己下对应的包,如果要玩集合包,也可以到curseforge下载,我这里就随便下载了个包做演示。注意是需要下载服务端的包,下载好复制到刚刚映射的目录下并解压。
三、配置环境并启动
回到alpine的终端,先安装java,一般无特殊情况,直接安装最新的java就行,输入以下命令安装:
apk update
#更新源
apk add openjdk17
#安装openjdk17,java 17环境
安装好java环境后,进入到mc-server目录,首次启动mc服务:
cd /root/mc-server/server-1.1.0
#进入容器内目录
./startserver.sh
#启动mc服务
首次运行会下载相关资源,并且最后会提示需要先确认协议。出现这个提示后,先按下ctrl+c结束服务端进程,再进入到实际存储目录,打开服务端的“eula.txt”文件,并且编辑最后一行,“false”改成“true”,保存,并重新运行启动命令。启动的时候会有一大堆警告,是正常的不用管。
最后启动完成,就可以打开客户端,添加内网ip,就可以进入到游戏了。
四、自启动
此时虽然部署好了,但是我们重启docker后mc是不会自启动的,还需要手动启动,所以这时候就需要安装screen并编写启动脚本:
/usr/bin/screen -dmS minecraft_server sh /root/mc-server/server-1.1.0/startserver.sh
五、其他
1.如果要让朋友从公网访问还需要把25565端口映射到公网上。
2.如果有需求可以直接更改mc-server的启动配置,里面包含了难度以及java内存占用大小等,都需要自行调整。
评论前必须登录!
注册