使用 Docker 快速搭建《我的世界》(Minecraft)服务器

服务器 0

本篇是一个使用 Docker 进行游戏服务器快速搭建的教程,需要先自行安装 Docker,以做好前置准备。

本教程基于 docker-minecraft-server 项目进行部署,详情请参阅 docker-minecraft-server 文档。

快速部署

docker run -d -it --name mc -p 25565:25565 -e EULA=TRUE -v /home/minecraft/data:/data itzg/minecraft-server

--name mc:设置容器名,此处设置为 mc,方便下文使用。

-v /home/minecraft/data:/data:将容器数据卷挂载到 /home/minecraft/data 路径下,可自行修改,此处方便下文使用。

执行以上命令后,等待 docker 部署完成,最基础的 Minecraft 服务器就已经搭建成功了,此时已经可以尝试通过 Minecraft 的 多人游戏 连接到服务器公网 IP 了。

注意:如果使用家庭网络搭建服务器,一般是没有 IPv4 的公网 IP 的,可以尝试使用 IPv6 来连接。
部分云服务商还需要手动开启对应的端口访问,比如我使用的阿里云服务器,需要到安全组中放行上面命令行用到的 25565 端口即可。

修改服务器参数

服务器搭建完成后,如果需要修改参数,就要找到 Minecraft 服务器对应的 Docker 数据卷(volume)挂载的路径。如果使用了上文的快速部署命令,路径应该为 /home/minecraft/data,切换到改路径下:

cd /home/minecraft/data

找到路径下的 server.properties 文件,内容大致如下:

#Minecraft server properties#Wed May 15 05:00:42 UTC 2024accepts-transfers=falseallow-flight=falseallow-nether=truebroadcast-console-to-ops=truebroadcast-rcon-to-ops=truedifficulty=easyenable-command-block=falseenable-jmx-monitoring=falseenable-query=falseenable-rcon=falseenable-status=trueenforce-secure-profile=trueenforce-whitelist=falseentity-broadcast-range-percentage=100force-gamemode=falsefunction-permission-level=2gamemode=survivalgenerate-structures=truegenerator-settings={}hardcore=falsehide-online-players=falseinitial-disabled-packs=initial-enabled-packs=vanillalevel-name=worldlevel-seed=level-type=minecraft/:normallog-ips=truemax-chained-neighbor-updates=1000000max-players=20max-tick-time=60000max-world-size=29999984motd=A Minecraft Servernetwork-compression-threshold=256online-mode=trueop-permission-level=4player-idle-timeout=0prevent-proxy-connections=falsepvp=truequery.port=25565rate-limit=0rcon.password=rcon.port=25575region-file-compression=deflaterequire-resource-pack=falseresource-pack=resource-pack-id=resource-pack-prompt=resource-pack-sha1=server-ip=server-port=25565simulation-distance=10spawn-animals=truespawn-monsters=truespawn-npcs=truespawn-protection=16sync-chunk-writes=truetext-filtering-config=use-native-transport=trueview-distance=10white-list=false

参数对应的功能可以在 Minecraft WIKI 中查看,按需修改对应的参数即可。

修改完成后,需要重启一下 Docker 容器,参考下文 Docker 常用命令 章节。

常用参数

如果不想一个一个查看参数对应的内容,我这里会给出一些常用的参数配置说明,以便快速修改。

# 游戏难度# peaceful - 和平# easy - 简单# normal - 普通# hard - 困难difficulty=easy# 游戏模式# survival - 生存模式# creative - 创造模式# adventure - 冒险模式# spectator - 旁观模式gamemode=survival# 最大玩家数max-players=20# 队友伤害# true - 玩家可以互相伤害。# false - 玩家无法互相造成伤害(也称作玩家对战环境(PvE))。pvp=true# 启用白名单# false - 不使用白名单。# true - 从 whitelist.json 文件加载白名单,需要在 whitelist.json 中添加玩家的用户名,对应的玩家才能加入服务器。white-list=false

Docker 常用命令

查看所有 docker 容器:

docker ps -a# 输出内容如下CONTAINER ID   IMAGE                        COMMAND                   CREATED        STATUS                       PORTS                                           NAMES19bb186f2584   itzg/minecraft-server        "/start"                  16 hours ago   Up About an hour (healthy)   0.0.0.0:25565->25565/tcp, :::25565->25565/tcp   mc

重启 Docker 容器:

# 使用容器名来重启,例如容器名为 mcdocker restart mc# 如果容器名太长,也可以使用容器 ID(CONTAINER ID),输入 ID 前几位即可docker restart 19bb1

暂停 Docker 容器:

docker stop mc

启动 Docker 容器:

docker start mc

踩坑分享

设置了一次白名单之后,如果重启一次容器,可能导致白名单的用户无法进入服务器,具体原因未知,所以我直接关闭了白名单,这种情况请注意保护好自己的公网 IP 不要泄露,否则可能有其他人捣乱。

如果遇到 暂时无法连接到登录验证服务器,请稍后再试,检查一下是否修改过本机的 hosts,如果有修改,清理一遍重进就行。

服务器建议 4G 内存起步,2G 很容易炸掉,不推荐用来部署 Minecraft 服务器。

参考

Docker
docker-minecraft-server
docker-minecraft-server 文档
Minecraft WIKI

也许您对下面的内容还感兴趣: