"写了一个 docker 版的 bedrock minecraft PE 服务器 测试支持 ubuntu14.04 以上版本,支持 centos7,6 代没有测试,理论也会支持,其实只要 docker 版本够了任意发行版都支持,下面是我从我的 github 里面复制过来的服务器搭建文档,可以参考一下 项目长期更新中:文档 .."

一个基于 docker 的 bedrock minecraft PE 服务器

写了一个 docker 版的 bedrock minecraft PE 服务器

测试支持 ubuntu14.04 以上版本,支持 centos7,6 代没有测试,理论也会支持,其实只要 docker 版本够了任意发行版都支持,下面是我从我的 github 里面复制过来的服务器搭建文档,可以参考一下

项目长期更新中:文档地址 https://github.com/LomotHo/minecraft-bedrock


快速开启服务器

1. 先在服务器上安装 docker

curl -sSL https://get.daocloud.io/docker | sh
# 此脚本适用于Ubuntu,Debian,Centos等大部分Linux
systemctl start docker
# 安装完成后记得打开docker

2. 创建服务器数据目录

数据目录用于存放地图资料,配置文件,包括 ops.json, permissions.json, server.properties, whitelist.json, worlds, 如果数据目录里面没有旧的数据,后面则会自动创建。 目录可以自定,这里以 /opt/mcpe-data 为例

mkdir -p /opt/mcpe-data

3. 部署服务器

把命令里面的/opt/mcpe-data换成你自己的目录

docker run -d --restart=always -it --name mcpe \
  -v /opt/mcpe-data:/data \
  -p 19132:19132/udp lomot/minecraft-bedrock:1.11.4.2-r1

如果发现目录写错了或者要换目录,可以先执行下面的命令关闭并删除刚刚开启的容器,然后再重新开启服务器

docker stop mcpe
docker rm mcpe

如果要更换服务器端口,直接把上面命令里面的19132:19132/udp的第一个19132换成你自己的端口就行了,不需要改server.properties里面的配置。

服务器升级

1. 首先备份一下数据

就是将/opt/mcpe-data这个文件夹备份一下

cp -r /opt/mcpe-data /opt/mcpe-data.bak

2. 然后退出并删除容器

docker container stop mcpe
docker container rm mcpe

3. 开启新版的容器

docker run -d --restart=always -it --name mcpe \
  -v /opt/mcpe-data:/data \
  -p 19132:19132/udp lomot/minecraft-bedrock:1.11.4.2-r1

记得把命令里面的/opt/mcpe-data换成你自己的目录
结束

服务器管理

进入、退出游戏控制台

docker attach mcpe

ctrl + p + q退出控制台
不要用ctrl+c或者ctrl+d,不然容器会退出。

手动 关闭 / 开启 / 重启 / 删除 服务器

docker stop/start/restart/rm mcpe

删除服务器后/opt/mcpe-data里面的数据不会丢失

向容器复制文件

此命令可以用于添加行为包,资源包,或者添加插件(如果有的话)

docker cp /path/to/xxx mcpe:/mcpe/server

/path/to/xxx为主机目录,mcpe:/mcpe/server为容器内服务器的目录

进入容器

docker exec -it mcpe /bin/bash

执行上面的命令可以进入服务器容器,并且开启一个 shell,这个时候就可以编辑文件了

在 shell 中输入exit可以退出

进阶选项

修改端口

如果要更换服务器端口,直接把上面命令里面的19132:19132/udp的第一个19132换成你自己的端口就行了,不需要改server.properties里面的端口配置。

关于插件

由于插件涉及到的文件比较多, 我为此做了一个新的镜像, 你需要自己管理服务器文件夹, 可以去 minecraft 官网下载服务端文件: [Minecraft 服务端下载]

用法:

docker run -d --restart=always -it --name mcpe \
  -v /opt/mcpe-data:/mcpe \
  -p 19132:19132/udp lomot/minecraft-bedrock:base

注意: 服务端数据文件夹/opt/mcpe-data需要包括完整的数据才能运行, 第一次配置建议从官方网站下载并解压

以自动重启的方式开启服务器

加上--restart=on-failure:5或者--restart=always参数即可

docker run -d --restart=on-failure:5 -it --name mcpe \
  -v /opt/mcpe-data:/data \
  -p 19132:19132/udp lomot/minecraft-bedrock:1.11.4.2-r1

如果需要主机开机或重启时自动启动 mc 容器,将 docker 设为开机自启即可:

systemctl enable docker

减少网络性能损耗

docker 的网络性能损失主要是由于桥接网络造成的,把参数-p 19132:19132/udp去掉,加上--net=host就能解决问题。

docker run -d -it --name mcpe -v /opt/mcpe-data:/data --net=host lomot/minecraft-bedrock:1.11.4.2-r1

此时如果要更换服务器端口,修改server.properties里面的配置即可。

安全地退出容器

直接使用docker stop mcpe相当于强行退出游戏服务器,有可能损坏数据(但由于 mc 的数据是区块储存的,一般不会出现这个问题)。

进入游戏控制台:docker attach mcpe,然后执行stop可以安全地退出容器。

如何查看报错日志

执行docker logs mcpe,可以查看容器的日志,如果服务器开启失败可以用这个命令查看报错日志。

删除无用的镜像

输入 docker image ls查看镜像列表如下

REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
lomot/minecraft-bedrock   base                 4c0a6be845fd        2 weeks ago         97.4MB
lomot/minecraft-bedrock   1.11.4.2-debian-r1   8cd07241f9b3        2 weeks ago         191MB
lomot/minecraft-bedrock   1.10.0.7-r2          05c48844d328        4 weeks ago         216MB

例如要删除旧的镜像lomot/minecraft-bedrock:1.10.0.7-r2,执行docker image rm lomot/minecraft-bedrock:1.10.0.7-r2 即可

部分报错处理

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

这个是 docker 服务没打开,执行systemctl start docker即可

# 使开启docker开机自启
systemctl enable docker

问题反馈 QQ 群

667224193

服务器二进制文件

Download server software (Alpha) for Minecraft

Docker 地址

Docker Hub

github 项目地址

  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销, 可以很容易地在机器和数据中心中运行。最重要的是, 他们不依赖于任何语言、框架或包括系统。

    185 引用 • 349 回帖 • 699 关注
  • MCPE
    1 引用
  • minecraft
    1 引用
回帖   
请输入回帖内容...