5分钟拉起自动装模组的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
还在手动下载服务端 jar、对 Java 版本、写启动脚本吗?docker-minecraft-server镜像在启动时自动下载指定版本的 Minecraft 服务端,装好模组加载器、模组包,并把世界数据管好,一条命令就能拿到可联机的服务器。
1 手动搭服务端的坑,它替你填了
1.1 传统流程有多繁琐
- 去官网下载服务端 jar,还要手动接受 EULA
- 查这个 MC 版本需要哪个 Java,再装对版本
- 每次升级都重走一遍,装整合包时一个个拖 jar 进 mods 目录
这些步骤在镜像里全部变成启动脚本自动完成,你只负责声明"要什么版本、什么类型"。
1.2 镜像能自动做的事
启动流程由脚本驱动:先解析变量,再下载对应服务端,然后处理模组/插件/数据,最后拉起 Java 进程,全过程见下图:
- 按
VERSION自动拉取对应游戏版本 - 按
TYPE切换 Vanilla、Paper、Fabric 等服务端类型 - 自动下载并清理模组、插件、数据
- 世界与配置集中在
/data,挂卷即可持久化
2 三步完成首次启动
2.1 最简命令先跑起来
docker run -d -p 25565:25565 \ -e EULA=TRUE \ -v ./data:/data \ itzg/minecraft-serverEULA=TRUE必须给,Mojang 要求接受条款;-v ./data:/data把宿主机目录挂进去存世界数据。首次启动会下载服务端,日志里看到DONE就可以连了。
2.2 换成 Compose 方便后续改动
长期开服的推荐 Compose 方式,改完配置重新docker compose up -d即可生效:
services: mc: image: itzg/minecraft-server ports: - "25565:25565" environment: EULA: "TRUE" VERSION: "1.20.4" volumes: - ./data:/data从docker run迁到 Compose 的结构对照可以参考这张图:
从 docker run 迁移到 Compose 的对比图
仓库的 examples 目录里有 Paper、Fabric、多服、K8s 等大量现成配置可以直接抄。
3 换版本和换类型都只改一行
3.1 用 VERSION 指定游戏版本
VERSION可以是LATEST(默认)、SNAPSHOT或具体号如1.12.2。用LATEST时只要重启容器,启动时就会检查并升级,不需要改任何配置。
3.2 用 TYPE 切换服务端类型
VANILLA:官方原版(默认)PAPER、SPIGOT:插件服,装 Bukkit 系插件FABRIC、NEOFORGE:模组加载器,装 mods- 各类型专属变量见 服务端类型文档
类型和版本搭配不同,所需 Java 版本也不同,这就是下一节的事。
4 对不上的 Java 版本,用镜像标签解决
4.1 按标签锁定 Java 版本
镜像 tag 直接决定容器里的 Java,常用组合:
latest:最新 Java,跟最新 MC 走java17:1.17+ 版本的稳妥选择java8:1.12.2 这类老服务端必须用它
image: itzg/minecraft-server:java84.2 报错时先查这个
如果日志出现class file version 65.0之类的UnsupportedClassVersionError,基本就是 Java 太老;老 Forge 报AppClassLoader cannot be cast to URLClassLoader则说明该换java8标签。完整对照表在 Java 版本说明里。
5 整合包和模组交给平台自动装
5.1 Modrinth:列几个项目名就行
用MODRINTH_PROJECTS写模组/加载器的项目名(slug 或 ID),每次启动都会下载最新版并清掉旧版:
environment: EULA: "TRUE" TYPE: FABRIC MODRINTH_PROJECTS: | fabric-api更多写法见 Modrinth 文档。
5.2 CurseForge:给两个 ID 一键部署
TYPE=AUTO_CURSEFORGE加项目 ID 和文件 ID,服务端、Forge 版本、全部依赖都会被自动解析并下载:
environment: TYPE: AUTO_CURSEFORGE CF_PROJECT_ID: "325345" CF_FILE_ID: "456789"6 世界数据:挂一个卷,下载也免挂载
6.1 所有东西都在 /data
世界默认在/data/world,服务端配置是/data/server.properties,模组在/data/mods。只要把/data挂出去,备份就是拷一个目录,迁移就是换个机器再挂回去。
6.2 用 WORLD 直接拉现成世界
不想手动拷贝?给WORLD一个 zip/tar 包的 URL 或容器内路径,启动时自动解压并识别level.dat;再配FORCE_WORLD_COPY=TRUE可每次启动强制覆盖。挂载一份"母世界"给多个服克隆的玩法:
细节见 世界数据文档。
7 进阶:没人时自动暂停服务器
7.1 两行配置省掉空转的 CPU
📦 朋友群里没人的深夜,服务器还在满速空转。打开自动暂停后,超过设定时间无玩家就暂停进程,下次有人进服再自动恢复:
environment: ENABLE_AUTOPAUSE: "TRUE" MAX_TICK_TIME: "-1"参数(如暂停超时时长)说明见 自动暂停文档,自动停机、RCON 定时指令等玩法也在同一目录下。
延伸阅读
- examples/ 目录:Paper、Fabric、Modrinth 模组包、多服 Velocity、K8s 等 30+ 份可直接用的 Compose 示例
- docs/variables.md:全部环境变量速查,调内存、时区、日志都在里面
- docs/misc/deployment/index.md:从 Compose 到 Kubernetes、Podman 的部署方式说明
【免费下载链接】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),仅供参考