IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    使用 Docker 搭建我的世界服务器

    Teacher Du发表于 2024-11-01 03:51:26
    love 0

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

    设备需求

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

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

    下载镜像

    1
    2
    3
    4
    5
    6
    7
    8
    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 上有很多镜像,大多都是玩家自行创建上传分享。杜老师选了一个版本最新且功能最全的为示例。

    存档目录

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

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

    创建容器

    1
    2
    3
    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 为指定核心,优势在前文踢到了。

    查看存档

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    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即可:

    1
    2
    sudo docker exec -i mc rcon-cli
    >

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

    1
    sudo docker attach mc


沪ICP备19023445号-2号
友情链接