
用 Docker 快速部署 Minecraft 服務器原版、插件服與整合包一次跑通的 4 個決策【免費下載鏈接】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用 itzg/minecraft-server 這個 Minecraft 服務器 Docker 鏡像部署服務器核心思路只有四步定玩法、對版本、給內存、掛數據。鏡像啟動時會按環境變量自動下載對應的服務端程序、模組加載器和整合包世界文件則統一落在掛載目錄里升級和回滾都不用手碰。下面按這四個決策展開。 第一步定玩法選對 TYPE 值選類型的標準只有一條你要裝什么。只和朋友玩純凈生存用默認值即 Mojang 官方服務端TYPEVANILLA或不寫都行。要跑 Bukkit/Spigot 插件或想要更好的性能選PAPERPaperMC 官方構建大服也常用它的衍生版 Pufferfish、Purpur、Folia。玩 Fabric 生態的輕量模組選FABRIC加載器版本由FABRIC_LOADER_VERSION指定。跑 ATM、RLCraft 這類大型整合包選FORGE或較新版本的NEOFORGE。直接從 CurseForge 或 Modrinth 平臺拉整合包用AUTO_CURSEFORGE或MODRINTH這類平臺類型后面第四節單獨講。各類型的完整清單和專用變量在 docs/types-and-platforms/index.md。?? 第二步對版本Minecraft 和 Java 各占一個位置最容易踩的坑是這兩個版本號配錯判斷標準很簡單VERSION決定游戲版本鏡像 tag 決定 Java 版本兩者必須互相匹配。1.17 及以上的游戲版本需要 Java 171.20.5 之后需要 Java 21直接用latesttag 即可它會自動跟進 Mojang 要求的最新 Java。玩舊版本如 1.12或 Forge 低于 1.18 的整合包必須顯式指定itzg/minecraft-server:java8否則啟動會直接報ClassCastException。啟動日志里出現UnsupportedClassVersionError或 class file version 報錯幾乎都是 Java 版本過低換一個更高的 tag 再拉鏡像即可。每個鏡像 tag 對應的 Java 版本、架構支持在 docs/versions/java.md 有對照表固定版本時可用release-java版本格式的 tag 鎖定具體構建。 第三步給內存一條命令把服務器拉起來原版和 Paper 這類基礎服務端內存默認 1G小服夠用多人長期在線或插件多的建議 2G~4G用MEMORY變量或JVM_OPTS調整。下面是最小化的啟動方式EULATRUE必須顯式聲明否則容器會拒啟docker run -itd --name mc -p 25565:25565 \ -v ./data:/data \ -e EULATRUE -e TYPEPAPER -e VERSION1.21.1 -e MEMORY2G \ itzg/minecraft-server習慣 compose 的話倉庫里的 examples/docker-compose-simple.yml 可以直接抄它演示了把宿主機./data目錄掛到容器/data的最小寫法。數據落盤后換鏡像 tag 重啟就能無感升級游戲版本模組和插件也留在原處。 第四步裝整合包讓鏡像自己去平臺下載裝整合包的原則是只填平臺標識下載、依賴解析、舊版本清理全部交給鏡像不要在宿主機手動下 jar 包。CurseForge 方式需要兩個 IDCF_PROJECT_ID是整合包項目 ID頁面上可查CF_FILE_ID是具體版本文件 ID兩者都填后啟動時自動拉取environment: - TYPEAUTO_CURSEFORGE - CF_PROJECT_ID325345 - CF_FILE_ID4439757Modrinth 方式則把MODRINTH_MODPACK填成整合包的項目 slug、ID 或版本頁 URL 即可加載器Forge/Fabric隨之自動安裝想釘死某個加載器可用MODRINTH_LOADER指定。無論哪個平臺REMOVE_OLD_MODS默認開啟換版本后舊的模組文件會被清掉/data/mods不會越攢越多。?? 收尾兩件事沒人的時候省電世界文件留得住啟用自動暫停服務器長期開著但沒人在玩時ENABLE_AUTOPAUSEtrue可以讓 Java 進程整體掛起有人連入再自動喚醒客戶端體驗無感。必配項MAX_TICK_TIME-1。暫停在服務器看來等于一個超長 tick不關掉 watchdog 的話恢復后可能被強制重啟。Paper 服務端還要加JVM_DD_OPTSdisable.watchdog:true。暫停判定時間用AUTOPAUSE_TIMEOUT_INIT首次啟動無人連入和AUTOPAUSE_TIMEOUT_EST玩家斷開后控制。1.21.2 起游戲自帶空服暫停改設PAUSE_WHEN_EMPTY_SECONDS更省事。完整參考 examples/autopause/compose.yml。管理世界數據/data是唯一的持久化位置世界文件在/data/world目錄名可由LEVEL改server.properties和各平臺緩存都在其下備份時整個目錄打 tar 即可。想從網上或另一個目錄導入世界給WORLD變量填 zip/tar 包的 URL 或容器內路徑鏡像會找level.dat自動展開FORCE_WORLD_COPYTRUE可在每次啟動時強制覆蓋。多服務器共用一個原始世界做克隆也是靠WORLD指向只讀掛載的源目錄實現。以上四步跑通后想繼續深入可以看倉庫里的兩個目錄docs/ 按服務器類型、模組平臺、配置項分類的完整文檔以及 examples/ 下 30 多個按場景命名的 compose 示例Fabric、GTNH、K8s、自動暫停等都能直接找到對應文件。【免費下載鏈接】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),僅供參考