4步搞定带机械动力 Create 模组的 Docker Minecraft 服务端: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
30秒内你会知道这套方案干什么:docker-minecraft-server 镜像在容器启动时自动下载 Forge 服务端与 Create(机械动力)模组,一份 Compose 文件就能拉起可玩、可持久化、可随时替换的 Docker Minecraft 模组服务器。下面覆盖部署、模组管理、存档持久化与调优的完整做法。
方案速览
- 🧱基础:itzg/minecraft-server 镜像 + Docker Compose,容器按环境变量自动装服务端、装模组,重启即升级
- ⚙️服务端:
TYPE: FORGE+VERSION: 1.19.2,Forge 版本锁定43.2.0,匹配 Create 所需环境 - 📦模组:
MODS变量直接列 URL,或MODS_FILE指向一份清单文件批量管理 - 💾数据:容器内
/data映射到宿主机./create-data,存档、配置、server.properties 都在里面 - 🎯效果:首次启动 2-5 分钟自动完成 Forge 与模组下载,之后改配置、换模组只需重建容器
容器内部的启动流程大致如下:
快速上手:4步把服务器跑起来
准备清单
| 项目 | 要求 / 入口 |
|---|---|
| Docker Engine | 20.10+ |
| Docker Compose | v2+ |
| 内存 | 至少 4GB(模组服务器建议 8GB 以上) |
| 项目文档 | README.md 变量总览、docs/index.md 官方文档首页 |
| 模组管理说明 | docs/mods-and-plugins/index.md |
1. 拿到代码
git clone https://gitcode.com/GitHub_Trending/do/docker-minecraft-server cd docker-minecraft-server仓库里的examples/有大量可直接参考的 Compose 写法,后文要改配置时都能对照。
2. 写一份专用 compose 配置
在项目根目录新建create-server.yml:
services: mc: image: itzg/minecraft-server environment: EULA: "TRUE" # 必须同意 EULA 才会启动 TYPE: "FORGE" # 声明服务端类型为 Forge VERSION: "1.19.2" # Minecraft 版本 FORGE_VERSION: "43.2.0" # 指定 Forge 版本,旧写法 FORGEVERSION 同样有效 MODS: | https://mediafilez.forgecdn.net/files/4111/926/create-1.19.2-0.5.1.d.jar https://mediafilez.forgecdn.net/files/4108/346/createaddition-1.19.2-20230306a.jar ports: - "25565:25565" volumes: - ./create-data:/dataMODS是换行分隔的 jar 下载地址列表,这里放的是 Create 本体和一个附加组件;./create-data会自动创建,作为服务器全部数据的落盘位置。
3. 起容器
docker compose -f create-server.yml up -d首次启动容器会依次下载 Forge 服务端、安装并拉取MODS列表里的模组,一般需要 2-5 分钟,取决于你的网络速度。期间不用做任何干预。
4. 验证连通
docker compose -f create-server.yml logs -f日志滚到末尾出现Done表示服务端就绪;用装了同款模组的客户端连上你的主机IP:25565能进游戏即完成。这条logs -f命令之后排查问题还会反复用到。
进阶诉求
📦 想装更多模组:换用 MODS_FILE 并随时更新版本
模组一多,把 URL 堆在 compose 里就不好维护了。改成MODS_FILE,把清单放到独立文本文件里,一行一个 URL,#开头的注释和空行会被忽略:
environment: MODS_FILE: /data/mods.txt volumes: - ./mods.txt:/data/mods.txt:ro对应的mods.txt内容:
# 机械动力核心模组 https://mediafilez.forgecdn.net/files/4111/926/create-1.19.2-0.5.1.d.jar # 附加组件 https://mediafilez.forgecdn.net/files/4108/346/createaddition-1.19.2-20230306a.jar仓库里的现成示例可参考 examples/mods-file/。更新模组版本的操作顺序是:
docker compose -f create-server.yml down # 修改 compose 或 mods.txt 中的模组 URL docker compose -f create-server.yml up -d顺带一提:从MODS列表里删掉的模组,下次启动时也会从服务器里自动移除,清理旧模组不用手动删文件。
💾 想让存档更稳:认清数据目录,定期打备份包
所有服务器数据都在容器的/data下,也就是你挂出来的./create-data目录:
- 世界存档:
./create-data/world/(默认地图名 world,可用LEVEL变量改) - 模组与插件配置:
./create-data/config/、./create-data/mods/ - 服务器设置:
./create-data/server.properties
因为是绑定挂载,改server.properties、挪文件都不怕容器被删。定期备份只需要一条命令:
zip -r create-backup-$(date +%F).zip ./create-data更多世界数据的导入导出细节见 docs/misc/world-data.md。
⚡ 想跑得更快更顺:调 JVM 内存与 GC
镜像默认给 Java 堆只留 1G(MEMORY默认值),跑 Create 这类重模组明显不够。两个调节入口:
MEMORY: "4G":一次性同时调大初始与最大堆JVM_OPTS:直接传原生 JVM 参数做更细的调优
示例配置:
environment: JVM_OPTS: "-Xmx6G -Xms4G -XX:+UseG1GC -XX:MaxGCPauseMillis=40"完整的参数说明(包括百分比堆、Aikar 标志等)在 docs/configuration/jvm-options.md。注意堆上限之外还要预留非堆内存,容器内存限制建议比-Xmx再高一些。
出问题了怎么办
| 症状 | 可能原因 | 处理办法 |
|---|---|---|
| 模组加载报错、疑似新旧模组冲突 | mods 目录残留了旧版文件 | 环境加REMOVE_OLD_MODS: "TRUE",可用REMOVE_OLD_MODS_INCLUDE: "*.jar"限定只清 jar |
| 容器起不来,提示端口被占用 | 宿主机 25565 已被其他进程占用 | 把映射改成"25566:25565",客户端连新端口 |
| Forge 安装阶段失败 | 上次安装缓存损坏 | 临时设FORGE_FORCE_REINSTALL: "true",启动成功后删掉该变量 |
| 启动失败但看不出原因 | 默认日志信息太少 | 设DEBUG: "true"后再logs -f,日志会输出大量初始化细节 |
REMOVE_OLD_MODS会在同步新模组前清空 mods/plugins 目录,升级整包时很好用,但日常增量更新不建议常开。
延伸资料
入门
- README.md:项目入口,环境变量全表,查任何配置项先来这
- docs/index.md:官方文档首页,按主题分门的总目录
- docs/mods-and-plugins/index.md:模组与插件的安装、同步、清理机制说明
进阶
- docs/configuration/jvm-options.md:JVM 内存、GC 参数、远程 JMX 调优细节
- docs/mods-and-plugins/modrinth.md:用 Modrinth 平台自动解析项目依赖装模组
- docs/misc/deployment/index.md:从手动 compose 走向自动化部署
- examples/multi-project/:一个网络里跑多台服务器(含代理与数据库)的参考拓扑
排错
- docs/misc/troubleshooting.md:DEBUG 开关、镜像版本标签等排错手段
- docs/misc/world-data.md:世界存档的挂载、下载与解压规则
这套方案把 Minecraft 服务端变成了"改文件、重建容器"就能变更的部署单元,模组、版本、存档各归其位。下一步建议:把mods.txt和 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),仅供参考