5分钟起服itzg/minecraft-server 一条命令部署 Minecraft 服务器完整指南【免费下载链接】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-serveritzg/minecraft-server是一个 Docker 镜像你只需一条命令它就能自动下载 Minecraft 服务端、装好模组并启动游戏。适合想给好友开一个 Java 版服务器、但不想折腾环境的朋友。先说说手动开服有多痛苦自己搭一个 Minecraft 服务器流程大概是装对版本的 Java、手动下载 server.jar、改server.properties、接受 EULA、再手动维护模组依赖。更麻烦的是Minecraft 几乎每个月都在发新版本旧服务端经常要跟着重装一轮 Java。如果你还要开模组整合包比如 All the Mods 这类几百个模组的大包手动管理依赖基本是噩梦。这个项目的思路是把上面所有脏活都塞进一个容器启动时它自己判断该下载什么、装什么、升级什么你只负责把配置写进环境变量。三步跑通你的第一台服务器第 1 步准备环境。装好 Docker 即可镜像本身会自动拉取所需的游戏文件。第 2 步启动容器。在项目任意目录执行docker run -d -it -p 25565:25565 -e EULATRUE -v ./data:/data itzg/minecraft-server其中EULATRUE是 Mojang 要求的协议接受声明漏掉它服务直接拒绝启动-v ./data:/data把世界数据落在本机目录容器删了数据还在。第 3 步验证。等日志里出现Done字样用客户端连接你的主机 IP、端口 25565 就能进服。查看运行状态用docker logs -f 容器名。长期运行建议改用 Docker Compose 管理改配置后重新执行docker compose up -d即可热更新具体写法见 docs/index.md。核心能力拆解任意版本一键切换启动时镜像默认拉取最新正式版。加一个VERSION变量就能锁定任意版本docker run -e VERSION1.7.9 -e EULATRUE itzg/minecraft-server取值可以是LATEST、SNAPSHOT最新快照或具体版本号如1.15.2-pre2。选LATEST或SNAPSHOT时重启容器就会自动升级到新下载的版本无需任何手动操作。规则详见 docs/versions/minecraft.md。服务端类型与整合包自动装载TYPE变量决定跑哪种服务端比如PAPER、FORGE、FABRIC列表在 docs/types-and-platforms/index.md。如果要玩整合包设置MODPACK_PLATFORM后它会按页面地址或项目 ID 自动拉取全部模组示例environment: MODPACK_PLATFORM: AUTO_CURSEFORGE CF_PAGE_URL: https://www.curseforge.com/minecraft/modpacks/all-the-mods-8普通插件则直接用PLUGINS变量传入下载链接启动时自动放进 plugins 目录。环境变量直通服务器配置不用进容器改文件MAX_TICK_TIME、MOTD、LEVEL_NAME这类环境变量会在启动时映射成server.properties的对应配置项完整对照表见 docs/configuration/server-properties.md。没人玩时自动休眠设置ENABLE_AUTOPAUSE: TRUE后镜像会监控在线玩家数断开超过AUTOPAUSE_TIMEOUT_EST默认 3600 秒就把 Java 进程挂起省资源有人连接时自动唤醒玩家无感知。原理和全部超时参数见 docs/misc/autopause-autostop/autopause.md。不登进游戏也能管服务器RCON 默认开启在宿主机直接发指令docker exec -i mc rcon-cli say 服务器10分钟后重启交互式控制台、SSH、WebSocket 三种远程方式各有文档入口在 docs/sending-commands/。三个真实场景示例场景一Paper 插件服 自动休眠场景朋友只在晚上上线白天想让服务器别白烧 CPU。配置参考 examples/autopause/compose.yml关键就四行environment: TYPE: PAPER ENABLE_AUTOPAUSE: TRUE MAX_TICK_TIME: -1 JVM_DD_OPTS: disable.watchdog:true效果最后一人下线且超时后进程进入暂停状态/data下会生成.paused标记文件下次有人连接自动恢复。场景二CurseForge 大型整合包场景想直接开一个现成的百模组整合包不想自己下依赖。配置参考 examples/auto-curseforge/atm8/docker-compose.yml给MODPACK_PLATFORM和CF_PAGE_URL指向整合包页面再给MEMORY: 4G首次启动会花几分钟下载并解析全部模组。效果之后每次开机都是同一个整合包版本想换版本就改CF_FILE_ID。下载逻辑见下图。场景三让手机基岩版也能进服场景服务器是 Java 版但你想用手机 Minecraft 一起玩。配置参考 examples/geyser/docker-compose.yml用PLUGINS变量同时拉取 Geyser 和 Floodgate 两个插件再开放 UDP 端口19132:19132/udp。效果Java 服原样运行基岩版客户端通过 Geyser 桥接直接连入同一台服两种端互通。多实例场景比如一个主服 一个代理服可以看 examples/multi-project/ 里的整套 compose 项目世界数据如何在服务间共享的思路见图。避坑与调优症状解法容器启动即退出日志提示 EULA环境变量必须写EULATRUE这是最常见的漏配开了自动休眠后服务器反复重启暂停会被看门狗当成卡死。设MAX_TICK_TIME: -1Paper 服再加JVM_DD_OPTSdisable.watchdog:trueautopause 文档有详细说明报错 class file version镜像的 Java 版本和 MC 版本不匹配。换 tag老版本如 1.16 用itzg/minecraft-server:java8新大版本用java17或java21完整对照在 docs/versions/java.md25565 端口被占用改宿主侧映射即可容器端口不用动25566:25565删容器后世界没了一定要挂载/data卷这是唯一的持久化目录见 docs/data-directory.md整合包首启内存不足用MEMORY: 4G提升上限-Xmx相关调优参考 docs/configuration/jvm-options.md资源导航docs/types-and-platforms/index.md —— 所有服务端类型Paper/Forge/Fabric 等说明docs/mods-and-plugins/index.md —— 模组与插件自动下载、清理机制docs/versions/minecraft.md —— 版本号取值规则与升级行为examples/ —— 40 多个可直接抄的 compose 示例K8s、树莓派、多服等tests/ —— 作者自己的自动化测试可当配置合法性参照一句话收尾把版本、模组、配置这些麻烦事全部交给环境变量你只管docker compose up -d剩下的交给 itzg/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创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考