740 字
4 分钟
Docker部署MC游戏开服
2025-01-18

首先安装DockerDocker-compose#

国内环境可以使用我修改的开源脚本安装,和配置镜像加速

bash <(curl -sSL https://gitee.com/wanfeng789/shell/raw/master/docker.sh)

创建配置文件#

docker-compose.yml配置示例

services:
  minecraft:
    image: itzg/minecraft-server
    environment:
      EULA: "true"
      TYPE: "FORGE"  # 可选使用 Forge 服务器
      VERSION: "1.20.1"  # 可选指定 Minecraft 版本
    ports:
      - "25565:25565"
    volumes:
      - ./data:/data
    stdin_open: true
    tty: true
    restart: always

然后一键启动

docker compose up -d

进入游戏后选择多人服务器,服务器地址填:公网IP:25565,如果你是用的nat服务器则需要将25565端口映射出来,然后服务器地址那里的端口替换成你映射出来的端口。

映射出来的配置文件在当前目录的data目录下

更多环境变量#

1. 基础配置#

变量名默认值说明
EULA"false"必须设置为 "true" 以接受 Minecraft 的最终用户许可协议(EULA)。
TYPE"VANILLA"服务器类型,例如 "FORGE""FABRIC""SPIGOT" 等。
VERSION"LATEST"Minecraft 版本,例如 "1.20.1"
MEMORY"1G"分配给服务器的内存大小,例如 "2G""4G"
JVM_OPTS""自定义 JVM 参数,例如 "-XX:+UseG1GC"
JVM_XX_OPTS""自定义 JVM 的 -XX 参数,例如 "-XX:+UseStringDeduplication"

2. 服务器类型相关#

变量名默认值说明
FORGE_VERSION""指定 Forge 版本,例如 "47.3.0"
FABRIC_VERSION""指定 Fabric 版本,例如 "0.14.22"
SPIGOT_DOWNLOAD_URL""自定义 Spigot 的下载 URL。

3. 网络和连接#

变量名默认值说明
SERVER_NAME"Minecraft Server"服务器名称,显示在客户端服务器列表中。
MOTD"A Minecraft Server"服务器欢迎信息(MOTD)。
ONLINE_MODE"true"是否启用正版验证,设置为 "false" 允许非正版玩家连接。
MAX_PLAYERS"20"服务器最大玩家数量。
VIEW_DISTANCE"10"玩家视野距离(区块数)。
ENABLE_RCON"false"是否启用 RCON(远程控制)。
RCON_PASSWORD""RCON 密码。
RCON_PORT"25575"RCON 端口。

4. 世界和游戏设置#

变量名默认值说明
LEVEL"world"世界名称。
LEVEL_TYPE"default"世界类型,例如 "flat""largebiomes"
GAMEMODE"survival"默认游戏模式,例如 "creative""adventure"
DIFFICULTY"easy"游戏难度,例如 "normal""hard"
ALLOW_FLIGHT"false"是否允许飞行。
ALLOW_NETHER"true"是否允许下界传送门。
SPAWN_ANIMALS"true"是否生成动物。
SPAWN_MONSTERS"true"是否生成怪物。
SPAWN_NPCS"true"是否生成村民。
GENERATE_STRUCTURES"true"是否生成结构(如村庄、神庙)。

5. 插件和模组#

变量名默认值说明
MODS""自动下载并安装模组的 URL 列表(以逗号分隔)。
REMOVE_OLD_MODS"false"是否在启动时删除旧的模组文件。
REMOVE_OLD_MODS_INCLUDE""指定要删除的模组文件(支持通配符)。
REMOVE_OLD_MODS_EXCLUDE""指定要保留的模组文件(支持通配符)。

6. 备份和日志#

变量名默认值说明
ENABLE_AUTOMATIC_BACKUPS"false"是否启用自动备份。
BACKUP_INTERVAL"24h"自动备份的时间间隔。
BACKUP_TARGET"world"备份的目标文件夹。
LOG_TIMESTAMP"false"是否在日志中添加时间戳。

7. 其他配置#

变量名默认值说明
OPS""管理员列表(以逗号分隔的玩家名称)。
WHITELIST""白名单列表(以逗号分隔的玩家名称)。
BANNED_IPS""封禁的 IP 列表(以逗号分隔)。
BANNED_PLAYERS""封禁的玩家列表(以逗号分隔)。
ENABLE_COMMAND_BLOCK"false"是否启用命令方块。
MAX_TICK_TIME"60000"服务器最大 tick 时间(毫秒)。
MAX_WORLD_SIZE"29999984"最大世界大小(区块数)。
Docker部署MC游戏开服
https://emohe.cn/posts/18/
作者
阿涛の小破站
发布于
2025-01-18
许可协议
CC BY-NC-SA 4.0