0.说明
使用 docker 或者 docker-compose 与直接下载基岩版服务端没有本质上的区别。
所以也可以自己去下载服务端进行搭建,详见:
但用 Docker-compose 部署会更方便,都不用去官网找连接下载,一行命令就可以搞定。重启等操作也很简洁。
1. Docker 安装
(注:整体参考 Docker 官方的安装教程:https://docs.docker.com/engine/install/debian/)
首先更新一下 apt-get,一个 Debian 下常用的包管理工具。
$ sudo apt-get update
使用 apt-get 安装一些之后需要的工具:
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
添加 Docker 的官方 GPG key:
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
添加完之后可以确认一下是否添加成功
$ sudo apt-key fingerprint 0EBFCD88
为 apt-get 添加 docker 官方的库地址
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian \
$(lsb_release -cs) \
stable”
添加完成后,再次更新 apt-get,并安装 docker 相关服务
sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io
检查一下 docker 是否正常运行
sudo docker run hello-world
如果出现类似以上内容,则代表运行正常。
2. Docker-compose 安装
Docker-compose 可以方便地部署多个 Docker 服务。
(注:安装方法主要参考:https://docs.docker.com/compose/install/)
安装 pip3
sudo apt-get pip3 -y
安装 docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
修改权限并进行软链接
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
3. 部署基岩版 Minecraft 服务端
这里使用已搭建好的 itzg/minecraft-bedrock-server (目前来看更新比较及时,基本跟上官网版本),其 docker hub 见:https://hub.docker.com/r/itzg/minecraft-bedrock-server
创建一个用于管理 Minecraft 的文件夹,如 mymcbe_management ,并进入:
mkdir mymcbe_management
cd mymcbe_management
创建 docker-compose 的配置文件 docker-compose.yml
vi docker-compose.yml
粘入以下内容,并根据需要修改
services:
mymcbe: #容器名
image: itzg/minecraft-bedrock-server #所用的镜像
restart: always
ports:
- "19132:19132/udp" #开放的端口
environment: #主要针对 server.properties 中的配置。启动时会根据下方内容修改 server.properties 中对应内容,也可以这里不填,手动修改 server.properties
EULA: "TRUE"
SERVER_NAME: PP_HK #服务器名字
GAMEMODE: survival #模式
DIFFICULTY: hard #难度
ONLINE_MODE: "false" #强制要求登陆 Microsoft,true 会导致登陆偶尔有点慢,特别对于大陆。但设置 false 可能导致偶尔上线后账号看似重置(实质为没有登陆成功,而对应了不同的 uid)
ALLOW_CHEATS: "false" #是否允许作弊
volumes:
- /ppfiles/mymcbe:/data #配置和存档等文件的持久化挂载路径
设置完毕后,Esc,输入:wq 保存退出
使用如下命令即可自动搭建:
docker-compose up -d
出现以上内容即搭建成功,可以尝试连接试试。
4. 后续管理
4.1 配置
进入配置和存档的持久化文件夹。
基本配置在 server.properties 中
permissions.json 可以对玩家配置权限
whitelist.json 可以配置白名单
behavior_packs、resources_packs 可以放 mod 或资源包
4.2 查看服务器日志
首先找到对应容器,输入
docker ps -a
查看所有正在运行的容器。
找到 Minecraft 的容器(其名字由管理文件夹和配置中的容器名构成)。如:
输入(将 mymcbe_management_mymcbe_1 替换为你的容器名),即可查看日志
docker container logs -f mymcbe_management_mymcbe_1
Ctrl+C 可退出容器日志
4.3 停止服务端
在 Minecraft 的 docker-compose 管理文件夹中,输入
docker-compose stop
即可停止
4.4 重启服务端
在 Minecraft 的 docker-compose 管理文件夹中,输入
docker-compose stop
docker-compose rm -f
docker-compose up -d
即可删除容器,再重建(由于有将配置和存档持久化,所以对玩家而言等效于重启)
4.5 完全删除 Minecraft 服务端
可以先停止并移除容器
docker-compose stop
docker-compose rm -f
再移走或删除配置和存档的持久化文件夹,如
rm -rf /ppfiles/mymcbe
即可完全删除。之后重建容器也是新的世界。
4.6 简单的定时自动备份存档
个人用的备份方法很简单粗暴,即定时(每24小时)把 world 文件夹压缩成如 mymcbe_worlds_backup_23.zip 最后的数字为当天的日期(即最多保存31份,一个月)。需要恢复时,删除当前 world 文件夹,直接解压过来就行。
可找一个文件夹,如之前的 mymcbe_management。
创建一个自动备份脚本 mc_auto_backup:
vi mc_auto_backup.sh
粘入以下内容并根据需要修改
first_wait_time=43200 #首次重启备份的等待时间,秒为单位。主要为推至夜间重启和备份
first_time=$(date "+%Y-%m-%d-%H-%M-%S" -d "+${first_wait_time} seconds")
echo "first backup time at ${first_time}"
sleep ${first_wait_time}
while true
do
period=86400 #两次重启备份的间隔时间,此为一天
time=$(date "+%Y-%m-%d-%H-%M-%S")
filetime=$(date "+%d")
next_time=$(date "+%Y-%m-%d-%H-%M-%S" -d "+${period} seconds")
echo "stop at ${time}"
docker-compose stop
#备份至的源与目标文件夹和文件名,个人是备份至 webdav 的文件夹,方便查看和管理
rm -rf /ppfiles/mywebdav/mymcbe_backups/mymcbe_worlds_backup_${filetime}.zip
zip -r /ppfiles/mywebdav/mymcbe_backups/mymcbe_worlds_backup_${filetime} /ppfiles/mymcbe/worlds
echo "finish backup mymcbe_worlds_backup_${filetime}"
docker-compose rm -f
docker-compose up -d
echo "finish restart"
echo "next backup time at ${next_time}"
sleep ${period}
done
保存并退出。
为方便管理,建议安装 Screen:
新建用于 Minecraft 备份的窗口
screen -S mc_auto_backup
运行脚本
sh mc_auto_backup.sh
可以 Ctrl+a+d 分离窗口。未来想查看时,再
screen -r mc_auto_backup
进入窗口查看日志。
运行正常,应该能看到自动备份出的文件
为什么我连接失败 “错误:无法连接至世界”
能 Ping 成功吗?
或者重启下服务器或者客户端试试