news 2026/9/12 7:20:18

5分钟拉起自动装模组的Minecraft服务器:docker-minecraft-server 部署完全指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
5分钟拉起自动装模组的Minecraft服务器:docker-minecraft-server 部署完全指南

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-server

EULA=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:官方原版(默认)
  • PAPERSPIGOT:插件服,装 Bukkit 系插件
  • FABRICNEOFORGE:模组加载器,装 mods
  • 各类型专属变量见 服务端类型文档

类型和版本搭配不同,所需 Java 版本也不同,这就是下一节的事。

4 对不上的 Java 版本,用镜像标签解决

4.1 按标签锁定 Java 版本

镜像 tag 直接决定容器里的 Java,常用组合:

  • latest:最新 Java,跟最新 MC 走
  • java17:1.17+ 版本的稳妥选择
  • java8:1.12.2 这类老服务端必须用它
image: itzg/minecraft-server:java8

4.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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/12 7:16:34

嵌入式AI静态评测:ARM MCU上KWS模型的源码级可靠性分析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/12 7:15:10

RetroArch 在 Android TV 上的控制器配置完整指南

RetroArch 在 Android TV 上的控制器配置完整指南 【免费下载链接】RetroArch Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3. 项目地址: https://gitcode.com/GitHub_Trending/re/RetroArch 如果你刚把手柄接到电视盒子上,…

作者头像 李华
网站建设 2026/9/12 7:15:06

Midscene 完整指南:3 步让 AI 听懂人话、替你操作浏览器

Midscene 完整指南:3 步让 AI 听懂人话、替你操作浏览器 【免费下载链接】midscene GUI Agent for E2E Testing 项目地址: https://gitcode.com/GitHub_Trending/mid/midscene 以前写浏览器自动化,第一件事是找选择器——页面一改版,脚…

作者头像 李华
网站建设 2026/9/12 7:12:50

Playnite 启动参数怎么用:让游戏库快起来、不卡死的 8 个开关

Playnite 启动参数怎么用:让游戏库快起来、不卡死的 8 个开关 【免费下载链接】Playnite Video game library manager with support for wide range of 3rd party libraries and game emulation support, providing one unified interface for your games. 项目地…

作者头像 李华
网站建设 2026/9/12 7:12:40

华为 MetaERP 资产模块的数据一致性,不是靠“人工对账补平”,而是靠“单一事实源 + 事务封闭 + 子分类账转换 + 期间锁 + 自动对账 + 分布式事务补偿”六层机制叠出来的。下面按“为什么

华为 MetaERP 资产模块的数据一致性,不是靠“人工对账补平”,而是靠“单一事实源 事务封闭 子分类账转换 期间锁 自动对账 分布式事务补偿”六层机制叠出来的。 下面按“为什么不会乱 → 怎么保证不乱 → 乱了怎么发现”来讲。 一、先定边界&#…

作者头像 李华