ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

itzg/minecraft-server 环境变量配置完整指南:从零启动到无人值守运维

itzg/minecraft-server 环境变量配置完整指南:从零启动到无人值守运维 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如果你想在 Docker 上跑一个《我的世界》Java 版服务器itzg/minecraft-server几乎是绕不开的选择。它把版本下载、模组加载器安装、配置生成全都塞进启动脚本里而你能控制的旋钮几乎都通过环境变量来实现。这篇指南不按变量分类来讲而是沿着你真实的使用节奏走先让服务器跑起来再调性能、管访问、盯状态、省资源最后教你卡住时怎么排查。跟着往下读你就能从零搭出一个稳定、可控、能长期跑的服务器。一、最小启动配置第一次就把服务器跑起来第一次的目标只有一个把容器拉起来让客户端能连上。这里真正决定成败的只有三件事。先解决能不能启动的问题。微软要求你必须同意服务条款所以要把EULA设成true。漏了它容器会直接退出这是新手最常踩的坑。再决定跑哪个服务器。TYPE控制服务器类型VERSION控制游戏版本。不设TYPE就是原版的VANILLA想要性能更好的服务端就写PAPER。VERSION留空默认拉最新稳定版也可以写死某个版本号避免意外升级。最后把数据落到容器外。世界、玩家权限、配置全都存在容器内的/data目录不挂载的话一删容器数据就没了。用 Docker Compose 管理最省心services: mc: image: itzg/minecraft-server:latest ports: - 25565:25565 environment: EULA: TRUE TYPE: PAPER VERSION: 1.20.1 volumes: - ./data:/data restart: unless-stopped在目录里docker compose up -d然后客户端填你的主机 IP 加 25565 端口就能进。想改配置时编辑好文件再跑一次docker compose up -d即可不用重建容器。![itzg/minecraft-server 从 docker run 迁移到 Docker Compose 的环境变量配置流程示意](https://raw.gitcode.com/GitHub_Trending/do/docker-minecraft-server/raw/91b98bcc7b55eb41c211b54706d5cd87911e8b8b/docs/img/Going from docker run to compose.drawio.png?utm_sourcegitcode_repo_files)小提示官方文档的docs/variables.md有全部变量清单仓库examples/目录里也放了大量现成 compose 例子可以直接抄来改。二、性能与体验调优让它跑得更快更稳服务器能连上之后下一个烦恼往往是卡。卡顿大多来自内存给得不够或者垃圾回收没调好。给内存留足空间。镜像默认只给 1G 堆内存人一多就不够用。MEMORY用来统一设初始和最大堆INIT_MEMORY和MAX_MEMORY则可以分开控制。多人服务器建议给到 4G 起步environment: MEMORY: 4G INIT_MEMORY: 2G MAX_MEMORY: 4G顺手打开优化过的 JVM 参数。USE_MEOWICE_FLAGS是一套用现代 Java17 及以上重新调过的垃圾回收参数比默认的更稳玩家多时收益明显USE_AIKAR_FLAGS是它的前身二选一即可别同时开。environment: USE_MEOWICE_FLAGS: TRUE顺带把脸面也调一调。MOTD决定玩家列表里显示的那行服务器标语写一段带颜色的文案能帮你和别人的服区分开。难度、种子这些也都能用变量直接控制DIFFICULTY设hard、SEED写一个固定数字就不用每次手改配置文件。细节都在docs/configuration/server-properties.md里所有server.properties的项基本都有对应变量。三、访问控制与安全管住谁能进你的服务器服务器跑顺了就该管谁能进、怎么管。先限人数和玩法。MAX_PLAYERS卡住上限MODE定默认游戏模式survival生存、creative创造等。给管理员留一条远程指挥的通道。RCON 让你在不用进游戏的情况下发管理命令比如踢人、广播。打开它必须同时设密码和端口environment: ENABLE_RCON: TRUE RCON_PASSWORD: 换成一个强密码 RCON_PORT: 25575记得在 compose 里把 25575 也映射出去并且只暴露给你信任的网段——RCON 密码一旦泄露等于把服务器钥匙交出去了。用白名单锁死入口。ENABLE_WHITELIST打开后只有名单里的人能进。WHITELIST直接逗号分隔写一串玩家名省去一个个在游戏里加人的麻烦。适合熟人小服的玩法。四、运行状态监控随时掌握服务器健康状况服务器挂在后台你不可能天天盯着。好消息是这个镜像自带健康检查能主动帮你体检。看一眼状态栏就够。镜像内置了监控工具会持续检测服务器是否在线。跑docker psSTATUS一列会显示(healthy)说明服务器是活着的哪天显示(unhealthy)就是出问题了。想脚本化查询也有现成手段。容器里有个mc-health包装脚本你可以把它写进 compose 的健康检查让编排系统自动感知状态healthcheck: test: mc-health start_period: 1m interval: 5s retries: 20start_period给服务器留出启动时间避免刚启动就被误判成不健康。完整说明在docs/misc/healthcheck.md。配合docker compose logs -f看实时日志基本就能掌握服务器的一切动态。五、无人值守维护没人玩时自动省电省资源服务器 24 小时挂着没人在线时却在白烧 CPU 和内存很浪费。镜像提供两档自动化正好对应两种场景。想保留世界、只停运算用自动暂停autopause。ENABLE_AUTOPAUSE打开后玩家离线一段时间服务器就进入暂停CPU 占用掉到接近零但容器还活着有人一连它自动恢复。两个超时变量控制多久没人算没人AUTOPAUSE_TIMEOUT_INIT管从启动起首次进入暂停AUTOPAUSE_TIMEOUT_EST管正常运营后离线多久暂停。environment: ENABLE_AUTOPAUSE: TRUE AUTOPAUSE_TIMEOUT_INIT: 600 AUTOPAUSE_TIMEOUT_EST: 300 MAX_TICK_TIME: -1参考examples/autopause/compose.yml能看到完整写法。想彻底停掉、连容器都收起来用自动停止autostop。ENABLE_AUTOSTOP打开后超时无人就会把服务器整个停掉资源彻底释放。注意这种模式下restart策略要设成no否则容器会被自动拉回来停止就白停了。具体例子看examples/autostop/compose.yml。六、常见报错排查启动卡住时快速定位配置一改就容易出问题这时候别慌镜像内置了几把放大镜。先开调试日志。把DEBUG设成true启动脚本会输出大量细节绝大多数莫名其妙卡住都能在这里看清卡在哪一步。只怀疑是最终启动命令有问题时用DEBUG_EXEC就够了输出更聚焦。怀疑是内存分配报错开DEBUG_MEMORY。它会单独把 JVM 内存相关的分配过程打出来方便判断是不是堆给少了或给多了。被 Changing ownership of /data 这一步卡住可以试SKIP_CHOWN_DATA。某些权限场景下这步会拖住启动设成true能跳过它。想确认服务器最终读到的是哪份配置开DUMP_SERVER_PROPERTIES。它会把你生成的server.properties原样打印到日志里核对一遍就知道变量到底有没有生效。这些排障变量都记录在docs/misc/troubleshooting.md。七、进阶玩法自定义参数与代理下载前面几步够你跑很久了这里放几个想折腾一下才会用到的能力。手工注入 JVM 参数。预设的优化参数不够用或者你想加自己的调优项时JVM_OPTS传普通的-X参数JVM_XX_OPTS传-XX参数空格分隔即可。比如想自己控制 GC 暂停就往JVM_XX_OPTS里写。在国内或弱网环境下载资源配置代理。启动时要从官方源下载服务端和模组网速不稳时设PROXY指到代理地址PROXY_NON_PROXY_HOSTS排除掉不需要走代理的地址。挂个 VanillaTweaks 提升原版手感。VANILLATWEAKS_SHARECODE直接填一个分享码或VANILLATWEAKS_FILE指向一个挂载进容器的配置文件就能给原版加上一堆体验优化。完整示例在examples/vanilla-tweaks/里。把整条链路串起来看EULA让它能启动TYPE/VERSION决定跑什么MEMORY和 JVM 参数让它跑得快RCON 和白名单管住谁能进健康检查让它时刻可观测自动暂停/停止让它在没人时不再空转而那几个DEBUG_*变量则是卡住时的救命绳。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创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表