TrueNAS Scale 完整部署 Minecraft Forge 服务器:Docker 从零到 1 实操
【免费下载链接】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
想在家里跑一个能装 Mod 的 Forge 服务器?在 TrueNAS Scale 上用 Docker 部署 itzg/minecraft-server 镜像即可:版本、内存全部写成环境变量,第一次进游戏可以一个晚上内搞定。
跑起来长什么样
部署完成后的形态:存储池里的数据集挂进容器当数据卷,25565(游戏)和 25575(RCON)两个端口映射到宿主机,容器自己负责拉取指定版本的 Forge 服务端并启动。
动手前先核对
开工前把这张表过一遍,能省掉很多回头路:
| 检查项 | 最低要求 | 建议值 |
|---|---|---|
| 系统 | TrueNAS Scale,Docker 服务已启用 | 系统与 Docker 保持更新 |
| 内存 | 4GB | 8GB 以上 |
| 存储 | 20GB 可用空间 | 数据落在 SSD 上 |
| 端口 | 25565、25575 可对外访问 | 给宿主机配固定 IP |
这个镜像替你做了什么
不用手动下载 Forge,也不用手拼 JVM 启动命令。itzg/minecraft-server 启动后会走一套内置脚本:读环境变量 → 下载指定版本的服务端 → 把你放的 mods 拷进容器 → 拉起进程,流程见下图(来自仓库):
你真正要做的只有两件事:说清"哪个版本",给够内存。
从零到可进游戏
数据集怎么建
- 在 TrueNAS 界面创建数据集
minecraft/forge-server,属主root(UID 0)、属组root(GID 0) - 建一个 Docker 桥接网络
mc-net,方便以后扩展多容器 - 数据集就是持久化落点,世界数据和配置都存这里
Compose 里哪几个参数不能错
在数据集目录写docker-compose.yml,五个环境变量是核心:
services: mc: image: itzg/minecraft-server ports: - "25565:25565" environment: EULA: "TRUE" TYPE: FORGE VERSION: "1.20.1" FORGE_VERSION: "47.1.0" MEMORY: "4G" volumes: - ./data:/data - ./mods:/mods:ro restart: unless-stopped几个容易踩的点:
TYPE=FORGE声明服务端类型,不写默认是原版FORGE_VERSION也可填latest,自动选适配的最新版MEMORY控制 JVM 堆,默认仅 1G,别照搬./data对应数据集路径,世界数据都在这里./mods只读挂载,镜像会在启动时把 mods 拷入容器
官方参考:Forge 示例、完整参数说明。
启动并验证
cd /mnt/tank/minecraft/forge-server docker compose up -d docker compose logs -f首启会下载 Forge 安装包并初始化,日志出现Done (t=XX.XXXs)! For help, type "help"就算成功 ✅。
Mods 挂在哪里
jar 丢进./mods目录,重启容器即可生效。也可以让镜像从 CurseForge 直接拉文件,见 CurseForge 文件。
上线之后的事
备份交给快照
TrueNAS 的 存储 > 快照 里建周期任务,选这个数据集,每周做一次、保留 4 份。💾 Mod 服文件一多,快照比手动拷文件可靠得多。
内存按档位给
MEMORY决定堆大小,容器整体还要预留约 25% 给非堆内存:
| 档位 | MEMORY | 适用场景 | JVM 微调 |
|---|---|---|---|
| 小 | 2G~4G | 少量 Mod、熟人局 | -XX:+UseG1GC |
| 中 | 4G~8G | 日常游玩 | 默认即可,追吞吐加-XX:+UseParallelGC |
| 大 | 8G 以上 | 大 Mod 包 | 用JVM_XX_OPTS传参 |
细节看 JVM 选项说明。
RCON 远程管理
RCON 默认就是开的,RCON_PASSWORD默认随机生成,显式设一个更省心:
environment: RCON_PASSWORD: "一段足够长的强密码"宿主机上docker exec -i mc rcon-cli就能下发命令。
没人玩就自动停
environment: ENABLE_AUTOSTOP: "TRUE" AUTOSTOP_TIMEOUT_EST: "300"最后一名玩家离开 300 秒后自动停止,默认是 3600 秒。自动停止说明。
两个高频问题
- Forge 安装失败或装了一半:临时加
FORGE_FORCE_REINSTALL: "true",启动成功后删掉;网络受限时可用FORGE_INSTALLER_URL指向自建安装包,见 Forge 说明 - 卡在 "Changing ownership" 步骤:加
SKIP_CHOWN_DATA: "true",更多坑见 故障排查
一张表收尾
| 你关心的 | 这套方案的应对 |
|---|---|
| 版本升级 | 改VERSION/FORGE_VERSION,镜像自动处理 |
| 数据安全 | 数据集挂载 + 每周快照 |
| Mod 更新 | 替换./mods里文件,重启即生效 |
| 远程管理 | RCON 走 25575,密码显式设定 |
进阶方向:想加 Web 管理面板看 examples/ftba;多台服务器做代理统一入口看 examples/proxied。
【免费下载链接】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),仅供参考