5分钟跑通暮色森林:docker-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
想把《我的世界》暮色森林(TwilightForest)开服给朋友们玩,但又不想折腾 Java 环境、手动下几十个模组 jar?用 docker-minecraft-server 可以把这些全自动化:容器启动时自动安装指定版本的暮色森林模组,存档挂到卷上,没人玩还能自动关机。本文带你从零搭一台能跑的暮色森林服务器,全程只改环境变量。
为什么要用容器跑服务器 🎯
传统手动开服的痛点:装 Java、下服务端、装加载器、逐个拖 jar 进 mods 目录、换版本再重来一遍。容器化之后这些事变成声明式的——你把要装什么写在 compose 里,镜像每次启动自动完成下载与升级。好处很直接:
- 换模组版本、升级游戏版本,改一行配置重启即可
- 容器坏了直接重建,存档不丢
- 部署脚本和配置都进版本库,朋友之间可以互相复制
5分钟跑通:最小可运行配置
下面这份 compose 是整个部署的最小集,做了四件事:指定用 Fabric 加载器、声明暮色森林这个项目、放行端口、挂载数据卷。端口映射写的是25565:30000,左右两侧都可以改成你喜欢的空闲端口。
services: mc: image: itzg/minecraft-server tty: true stdin_open: true ports: - "25565:30000" environment: EULA: "TRUE" TYPE: FABRIC MODRINTH_PROJECTS: "twilightforest" VERSION_FROM_MODRINTH_PROJECTS: "true" volumes: - data:/data volumes: data: {}在文件所在目录执行docker compose up -d。做到这步你应该看到容器状态是 running,日志里出现正在解析 twilightforest 项目并开始下载的提示。官方仓库里还有一个结构几乎一致的 modrinth 项目示例,可以直接对照。

上图是docker run与 compose 各字段的对应关系,如果你习惯命令行也可以照这个对照表改写。
把世界存档留住
data:/data这一行看起来不起眼,却是整台服务器里最重要的一行:暮色森林生成的维度、你建的建筑都存在/data里。只要卷还在,容器怎么删怎么重建,存档都跟着你走。
想让存档落在自己指定的目录(比如方便备份到网盘),把具名卷换成绑定挂载即可,路径换成你自己的绝对路径:
volumes: - /home/yourname/twilight-data:/data验证方式:进游戏建几格建筑,docker compose down再up -d,重连后建筑还在即说明持久化生效。更多存档管理细节可以看 世界数据文档。
让依赖自己装
暮色森林通常需要前置模组。有两条路,任选其一:
- 让 Modrinth 自动拉依赖:加一行
MODRINTH_DOWNLOAD_DEPENDENCIES: "required",镜像会解析暮色森林声明的前置并自动下载,一行配置搞定。 - 手写链接清单:建一个
mods.txt,每行写一个 jar 的完整下载地址(ForgeCDN 等仓库链接都可以),然后挂载进容器并指向它:
environment: MODS_FILE: /extras/mods.txt volumes: - ./mods.txt:/extras/mods.txt:ro写法可参考 mods-file 示例。
版本控制参数速查(都是MODRINTH_PROJECTS的搭档):
MODRINTH_PROJECTS_DEFAULT_VERSION_TYPE— 决定从每个项目里挑哪种版本:release(默认,最稳)、beta、alphaVERSION_FROM_MODRINTH_PROJECTS: "true"— 游戏版本自动跟随模组支持的最高 MC 版本,不用手动猜- 精确锁定版本 — 冲突时用
slug:版本号的格式(如twilightforest:<版本号>)把模组钉死在某个版本,版本号可在 Modrinth 项目页面查到
详细格式说明见 Modrinth 配置文档。
没人玩时自动歇着 😴
服务器空转最费资源。启用 autostop 后,最后一个玩家离开并超时,容器内的服务端会自动停止:
environment: ENABLE_AUTOSTOP: "TRUE" AUTOSTOP_TIMEOUT_EST: "1800" # 最后一个玩家离开后30分钟再停,单位秒注意两点:autostop 模式下容器要配合restart: "no"策略使用(停了需要手动或脚本再拉起),并且它和 autopause 互斥,别同时开。参数含义和完整示例见 autostop 文档。
出错了先查这 3 件事 🔍
- 看日志:
docker logs <容器名>,八成问题(下载失败、版本不支持)都写在里面。 - 核对游戏版本兼容性:确认暮色森林当前版本支持你设定的 MC 版本;开了
VERSION_FROM_MODRINTH_PROJECTS的话,日志里会打印最终解析出的版本号,用它核对。 - 清掉 mods 目录重来:怀疑模组文件损坏或版本串了时,删除
/data下的mods目录后重启,镜像会重新下载全套。
如何确认部署成功
满足以下两条,就可以把服务器 IP 发给朋友了:
- 用游戏客户端以端口 30000(或你自定义的对外端口)能连进服务器,主界面显示在线
docker logs里能看到模组加载成功的记录,且没有 MOD 加载错误;进游戏后用暮色森林的入口道具能打开传送门,说明维度已正常生成
做到这里,一台自动装模组、存档持久化、闲时自动下电的暮色森林服务器就搭好了。想继续加功能(自动暂停、代理、多服),可以参考仓库里的 examples 目录,每个场景都有现成 compose。
【免费下载链接】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),仅供参考