在网上找docker搭建我的世界服务器很多都是使用 itzg/minecraft-server镜像搭建
但是不知道是不是我技术太差,用这个方法只能开成功纯净服,开不了模组服,我就直接用docker安装ubuntu容器在容器里开服,后来发现MCSM面板,并搭建成功
所以我写了我的第一篇文章分享出来,下面开始搭建
在套件中心安装docker
使用FinalShell等软件连接nas
输入命令
sudo -i
#输入群辉登录是的密码
#登录成功后输入下载docker镜像
docker pull ubuntu
回到nas
启动容器,点击高级设置
在本地创建mc-server的目录,装载路径为/opt
放行下面的端口
25565是我的世界java版的端口,23333,24444是MCSM的端口
然后点击应用,再下一步,回到容器列表双击刚刚创建的ubuntu
点击终端机,接下来我们的操作将在这个容器的终端进行
apt update
apt install openjdk-17-jre -y
(数字即版本,可对照下表更改)Minecraft 版本 | Java 版本 |
---|---|
1.18+ | 17 |
1.17+ | 16+ |
1.12+ | 8+ |
1.11- | 8 |
java -version
#安装wget命令
apt update
apt-get install wget -y
#安装git
apt install git -y
切换服务器 Java 版本
卸载旧的版本
检查当前安装的版本:java -version
卸载当前版本:apt remove openjdk-17-jre
(以 Java 17 为例)
清理残留依赖包:apt autoremove
检查是否完全卸载:java -version
如果报错就表明卸载成功
# 切换到安装目录/
cd /opt/
#如果没有这个目录就创建一个
# 下载运行环境
wget https://npmmirror.com/mirrors/node/v14.17.6/node-v14.17.6-linux-x64.tar.gz
# 解压文件
tar -zxvf node-v14.17.6-linux-x64.tar.gz
#这段时间会比较慢
# 链接程序到环境变量中
ln -s /opt/node-v14.17.6-linux-x64/bin/node /usr/bin/node
ln -s /opt/node-v14.17.6-linux-x64/bin/npm /usr/bin/npm
# 准备安装目录
mkdir /opt/mcsmanager/
cd /opt/mcsmanager/
# 下载面板端(Web)程序
git clone https://kgithub.com/MCSManager/MCSManager-Web-Production.git web
cd web
# 安装依赖库
npm install --production --registry=https://registry.npmmirror.com/ --no-fund
cd /opt/mcsmanager/
# 下载守护进程(Daemon)程序
git clone https://kgithub.com/MCSManager/MCSManager-Daemon-Production.git daemon
cd daemon
# 安装依赖库
npm install --production --registry=https://registry.npmmirror.com/
# 打开两个终端或两个 Screen 软件的终端窗口
#安装screen(可选)
apt -y install screen
#如果要创建具名screen会话,那么可以使用命令
screen -S yourscreenname
#这将会打开一个新的shell窗口,你可以在这里进行任意操作。不带参数的screen命令创建的是一个匿名
因为使用的群辉所以我们可以直接开两个终端
# 先启动守护进程
cd /opt/mcsmanager/daemon
# 启动
node app.js
# 然后启动面板端进程
cd /opt/mcsmanager/web
# 启动
node app.js
# 访问 http://localhost:23333/ 即可进入面板。
# 默认情况下,面板端会自动扫描 daemon 文件夹并且自动连接到守护进程。
现在我们可以打开浏览器,输入 群辉在本局域网的ip:23333 ,就可以访问面板了
创建账号,设置密码时要有数字、大小写字母
设置好账号密码后依次点击快速开始,创建一个Minecraft 服务器。
我们可以选择一键开服,
这里可以选择一些版本,就可以一键搭建我的世界服务器了
这样docker安装MCSM面板就告一段落了
注意!!!
如果是像我一样开启了两个终端机,在关闭docker容器的控制界面时要注意不要把所有终端机关闭
当然,这样非常的难受,而且每次重启容器都要再启动两个进程,那有没有更好的方法呢?
当然有的,那就是手动配置 MCSM 到 Linux 服务,这样就可以设置开机自启动面板,也就是开容器自启动
此部分参考https://docs.mcsmanager.com/#/zh-cn/tutorial/to_service
为了避免一些未知的错误我们先把刚才开的两个终端或screen关掉
#安装systemctl
apt install -y systemctl
#安装vim
apt install -y vim
安装好vim后,开始配置
#将守护进程加入服务
vim /etc/systemd/system/mcsm-daemon.service
按i进入编辑模式,复制粘贴下面配置文件
[Unit]
Description=MCSManager Daemon
[Service]
WorkingDirectory=/opt/mcsmanager/daemon
ExecStart=${node_install_path}/bin/node app.js
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
[Install]
WantedBy=multi-user.target
再按esc建,输入英文模式的冒号":"在左下角出现冒号后输入wq保存并退出
#将面板端进程加入服务
vim /etc/systemd/system/mcsm-web.service
配置文件,其它的同上
[Unit]
Description=MCSManager Web
[Service]
WorkingDirectory=/opt/mcsmanager/web
ExecStart=${node_install_path}/bin/node app.js
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
[Install]
WantedBy=multi-user.target
然后再启动服务
systemctl start mcsm-{daemon,web}.service
systemctl enable mcsm-{daemon,web}.service #设置开机(容器)自启动
systemctl start mcsm-{daemon,web}.service #启动服务
systemctl restart mcsm-{daemon,web}.service #重启服务
systemctl stop mcsm-{daemon,web}.service #停止服务
————————————————————————————————
我知道我写的第一篇教程并不好,怕有人不会,所以我把镜像commit出来了
安装第一步用下面的命令拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/xialiuya/mcsmubuntu:3.0
拉取完了就可以启动但是在这个镜像就不能将装载路径设置为/opt
这个镜像可以不用设置存储空间
端口跟第二部一样设置也就是,23333,24444,25565
启动容器后直接使用 systemctl start mcsm-{daemon,web}.service
启动服务