抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

这几天一直在研究容器,偶尔抽空玩会我的世界,突发奇想:可否通过 Docker 搭建我的世界服务器?今天就来操作下吧!

设备需求

如果只是自己游戏,那主机的配置没啥要求,能进就行。如果是联网大家玩,建议选择 CPU 主频较高的主机,不要考虑多核多线程的问题,目前不管官方还是其它核心,对多线程优化都不够好。

如果更喜欢高版本的小伙伴「如杜老师」建议使用水桶或纸飞机核心,官方核心实在不推荐的!杜老师强烈推荐纸飞机,相比水桶稳定性差一些「偶尔可能报错,但不影响游戏」纸飞机的性能优化还是很明显的,当然还有其它衍生版本,这里就不再推荐了。

下载镜像

penn@dusays:~$ sudo docker pull minecraftservers/minecraft-server
Using default tag: latest
latest: Pulling from minecraftservers/minecraft-server
476c1ed2267c: Pull complete 
4f4fb700ef54: Pull complete 
Digest: sha256:b279da117768925b4a773176dee5c0e8669e3af2abcca58c11b82a05640c6248
Status: Downloaded newer image for minecraftservers/minecraft-server:latest
docker.io/minecraftservers/minecraft-server:latest

注意:在 Docker Hub 上有很多镜像,大多都是玩家自行创建上传分享。杜老师选了一个版本最新且功能最全的为示例。

存档目录

penn@dusays:~$ sudo mkdir -v /data
mkdir: 已创建目录 '/data'
penn@dusays:~$ sudo chmod 777 -c /data
'/data' 的权限模式已由 0755 (rwxr-xr-x) 更改为 0777 (rwxrwxrwx)

注意:创建服务器运行容器前,我们需要先创建好游戏存档目录,并赋予 Docker 访问权限。

创建容器

penn@dusays:~$ sudo docker run -itd --name=mc -v /data:/data -p 25565:25565 \
> -e EULA=TRUE -e VERSION=1.17 -e TYPE=PAPER minecraftservers/minecraft-server
0d3f314da12e2e2d9c59ac3a40a2102507c98c54b7601d1332a6f627ed15a4b2

注意:-e EULA=TRUE 为必须参数,如果不设置将无法正常进入游戏;-e VERSION=1.17 用于指定服务端游戏版本,杜老师用的就是 1.17;-e TYPE=PAPER 为指定核心,优势在前文踢到了。

查看存档

penn@dusays:~$ ls -l /data
总用量 59068
-rw-rw-r-- 1 penn penn        2 11月 16 18:16 banned-ips.json
-rw-rw-r-- 1 penn penn        2 11月 16 18:16 banned-players.json
-rw-rw-r-- 1 penn penn     1136 11月 16 18:16 bukkit.yml
drwxrwxr-x 2 penn penn     4096 11月 16 18:16 cache
-rw-rw-r-- 1 penn penn      598 11月 16 18:16 commands.yml
-rw-rw-r-- 1 penn penn       65 11月 16 18:15 eula.txt
-rw-rw-r-- 1 penn penn     2576 11月 16 18:16 help.yml
drwxrwxr-x 2 penn penn     4096 11月 16 18:16 logs
-rw-rw-r-- 1 penn penn        2 11月 16 18:16 ops.json
-rw-rw-r-- 1 penn penn 60391784 11月 16 18:16 paper-1.17-79.jar
-rw-rw-r-- 1 penn penn     8604 11月 16 18:17 paper.yml
-rw-rw-r-- 1 penn penn        0 11月 16 18:16 permissions.yml
drwxrwxr-x 3 penn penn     4096 11月 16 18:16 plugins
-rwxr-xr-x 1 penn penn     1220 11月 16 18:16 server.properties
-rw-rw-r-- 1 penn penn     4367 11月 16 18:17 spigot.yml
-rw-rw-r-- 1 penn penn        2 11月 16 18:16 usercache.json
-rw-rw-r-- 1 penn penn       44 11月 16 18:16 version_history.json
-rw-rw-r-- 1 penn penn        2 11月 16 18:16 whitelist.json
drwxrwxr-x 8 penn penn     4096 11月 16 18:17 world
drwxrwxr-x 3 penn penn     4096 11月 16 18:17 world_nether
drwxrwxr-x 3 penn penn     4096 11月 16 18:17 world_the_end

注意:启动容器后稍等会,就会在游戏存档目录中,看到新生成的相关文件,具体作用和配置可自行搜索。

进控制台

如果需要进入到游戏控制台,可以参考如下命令,如需退出按CTRL+C即可:

sudo docker exec -i mc rcon-cli
>

还有一种进入方式,参考如下命令。进入后没有任何提示符,直接输入指令操作即可。只是退出比较麻烦,需先按CTRL+P,后再按CTRL+Q才行:

sudo docker attach mc

评论