
itzg/minecraft-server 环境变量完整指南四步跑起一台不操心的服务器【免费下载链接】docker-minecraft-serverDocker image that provides a Minecraft Server for Java Edition that automatically installs/upgrades versions, modloaders, modpacks and more at startup项目地址: https://gitcode.com/GitHub_Trending/do/docker-minecraft-server配完之后的终态是这样的你把一份 compose 文件交给docker compose up -d服务器自动下载对应版本、进游戏、没人上线时自己休眠RCON 密码也早就换掉了——你只需要偶尔看一眼docker ps里的 healthy。而真正拦住大多数人的其实只有几个 itzg/minecraft-server 环境变量。这篇指南按先跑起来 → 跑得快 → 管得住 → 省心得四步带你配完每一步只讲你当下会卡住的东西不提前剧透。itzg/minecraft-server 环境变量配置从 docker run 到 docker compose 的迁移示意最小启动配置三个变量让服务器跑起来能进游戏场景你刚装好 Docker想让朋友今晚就能连进来。你会卡在哪日志里反复滚EULA相关的报错或者服务器起来了但你从外网怎么都连不上。前者是少了同意协议后者是忘了把 25565 端口映射出来、数据目录也没挂载。怎么配最小启动只需要下面这几项。EULA管你答不答应 Mojang 的用户协议不设它服务器根本不会启动TYPE决定跑哪种服务端不设默认是 VANILLAVERSION决定玩哪个版本不设默认 LATEST。变量作用人话建议值EULA同意用户协议不设直接退出TRUETYPE服务端类型不设跑原版PAPERVERSION游戏版本不设追最新世界升级时容易翻车固定版本号如1.21MOTD服务器列表里显示的那行字不设显示默认文案随意如My Server必须原样抄的就两行其余按你机器情况改路径EULA: TRUE volumes: - ./data:/data再加ports: [25565:25565]对外放端口把宿主机目录挂到容器/data——世界数据、玩家存档全在这个目录里不挂载的话删容器等于删世界。配完什么效果docker compose up -d之后首次启动会花几分钟下载服务端日志出现Done后朋友就能用主机 IP 25565 进游戏。更完整的启动说明见官方入门文档。跑起来只是及格线。接下来你会发现人多时掉帧、世界生成时卡顿——那是资源配置的问题。性能与资源内存该给多少JVM 标志要不要开场景服务器能玩了但人一多就卡你怀疑是内存不够。你会卡在哪把MEMORY盲目拉到 8G结果把宿主机挤爆或者只设了堆内存忘了 JVM 堆外还要占内存容器 OOM 被杀。怎么配MEMORY同时设定 JVM 的初始和最大堆内存默认只有 1G多人玩肯定不够INIT_MEMORY和MAX_MEMORY可以把这两个值拆开调比如先给 1G 快速启动最多涨到 4G。经验值是容器总限制 堆内存 25% 的余量因为堆外内存是真实存在的。变量作用人话建议值MEMORY初始最大堆内存一把梭默认 1G按玩家数给2G起步INIT_MEMORY/MAX_MEMORY分别控制起步和上限省得每次启动都吃满1G/4GUSE_MEOWICE_FLAGS一键套用 MeowIce 的 G1 垃圾回收调优Java 17 版 Aikar 标志不开就是默认 GC人多时卡顿明显trueJVM_OPTS/JVM_XX_OPTS逃生舱塞任意 JVM 参数不懂就别碰留空垃圾回收标志别自己手写-XX:UseG1GC那一串USE_MEOWICE_FLAGStrue一个开关就包含了社区验证过的整套调优比手动拼参数稳。详细取舍可查 JVM 选项文档。世界生成方面SEED定世界种子不设每次开局随机LEVEL_TYPE定地形类型如FLAT、amplifiedGENERATOR_SETTINGS是给生成器的 JSON 参数如 superflat 的层配置。这些是玩法向的不影响性能不改也能玩映射关系见 server.properties 文档。配完什么效果多人在线时掉帧频率明显下降启动速度因INIT_MEMORY小而变快内存占用有上限不会失控。卡帧解决了下一个问题自然浮现这台服上谁说了算权限与安全谁来管服务器管多严场景朋友都进来了你得决定谁能进、谁有权限、你本人怎么远程下发命令。你会卡在哪RCON 默认就是开着的而它的密码是镜像随机生成的——如果你顺手把 25575 端口也映射出去等于把管理入口的钥匙挂在门上只是你不知道钥匙长什么样。怎么配变量作用人话建议值RCON_PASSWORDRCON 管理密码默认是随机值暴露端口却不改它就等于不设防自己生成的长随机串ENABLE_RCON开关 RCON关掉会失去一些控制台功能不建议关保持默认trueRCON_PORTRCON 监听端口默认 25575不要映射到公网ENABLE_WHITELIST开启白名单模式不开则所有人可进公网服必开trueWHITELIST逗号分隔的玩家名列表和上一项配对使用alice,bobDIFFICULTY难度可选 peaceful/easy/normal/hard不设默认 easy按服规MODE默认游戏模式不设默认生存按服规白名单是公网服的第一道闸只要WHITELIST有值白名单就自动生效没在名单里的人连门都摸不到。完整列表管理包括从文件导入见 官方变量表。配完什么效果陌生玩家被挡在白名单外你在本地用 RCON 客户端或 mc-send-to-console 脚本 下发命令25575 端口始终只对内网可见。管得住之后最后一个问题是没人盯着的夜里服务器怎么办自动化与可观测没人盯着时它自己怎么干场景朋友只晚上在线白天服务器却一直在吃 4G 内存空转。你会卡在哪开了自动暂停服务器恢复时却被告诉某个 tick 卡太久然后强制重启——这是没关 watchdog暂停在服务器眼里就是一次超长卡顿。怎么配变量作用人话建议值ENABLE_AUTOPAUSE无人连接后把 Java 进程挂起有人连再唤醒客户端无感知trueAUTOPAUSE_TIMEOUT_EST最后一名玩家离开后多少秒暂停默认 3600按作息调如1800MAX_TICK_TIME必须配合改看门狗超时阈值不改它会在恢复时杀掉服务器-1彻底关闭ENABLE_AUTOSTOP更激进直接停掉容器而非挂起省全部资源与自动暂停互斥按需二选一LOG_TIMESTAMP日志行加时间戳排障时能对上时间线true注意两件事一是 1.21.2 及以上版本已有原生空服暂停直接用PAUSE_WHEN_EMPTY_SECONDS即可不必再上ENABLE_AUTOPAUSE二是 Paper 服还要加JVM_DD_OPTSdisable.watchdog:true才关得干净。细节和knockd网络接口的坑都写在 Auto-Pause 文档里。日志不用额外配置——镜像已默认开启滚动日志按天归档成logs/*.log.gzROLLING_LOG_MAX_FILES控制保留多少份磁盘不会被写爆。健康检查也是内置的镜像自带 mc-monitor 持续探测docker ps的 STATUS 列直接显示healthy想自定义探测间隔见健康检查文档。配完什么效果白天没人玩时进程自动挂起内存占用掉到接近零有人一敲门客户端 ping就唤醒你随时docker compose ps一眼确认死活。常见翻车点与可直接抄的完整清单先把翻车点过一遍都是真实高频事故忘了EULA服务器启动几秒就退出日志里有明确提示没挂./data:/data容器一删世界全没这是最贵的一课端口只映射了 25565 却连不上先查宿主机防火墙25575 映射到公网且RCON_PASSWORD是默认随机值等于开放管理入口立刻改密码并收回端口开了自动暂停却没关 watchdog恢复后服务器自我了断MEMORY设 4G 但容器没有限制宿主机被挤爆记住堆外还要加 25%最后是一份可以直接抄进 compose 的完整环境清单覆盖前四步environment: EULA: TRUE TYPE: PAPER VERSION: 1.21 MOTD: My Server MEMORY: 2G USE_MEOWICE_FLAGS: true RCON_PASSWORD: 换成你自己生成的长随机串 ENABLE_WHITELIST: true WHITELIST: alice,bob DIFFICULTY: normal ENABLE_AUTOPAUSE: true AUTOPAUSE_TIMEOUT_EST: 1800 MAX_TICK_TIME: -1 LOG_TIMESTAMP: true配合前面提到的ports、volumes两段docker compose up -d就是你的日常。之后想加 mod 包、换 Fabric、接 Geyser仓库的 examples 目录 里有大量现成 compose 文件可以照着改——每个阶段只加对应的那几个变量即可。变量表本身会随版本变化以 官方变量文档 和 types-and-platforms 文档 为准这份指南解决的是先配哪几个、为什么查细节再回官方文档找对应段落就行。【免费下载链接】docker-minecraft-serverDocker image that provides a Minecraft Server for Java Edition that automatically installs/upgrades versions, modloaders, modpacks and more at startup项目地址: https://gitcode.com/GitHub_Trending/do/docker-minecraft-server创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考