🐳 Minecraft + Docker:我的个人配置,摆脱 Java 的痛苦

发布: (2026年2月5日 GMT+8 12:19)
5 分钟阅读
原文: Dev.to

Source: Dev.to

Cover image for 🐳 Minecraft + Docker: My personal config to stop suffering with Java

🇪🇸 Lee este post en Español

我并不是 Java 大师,老实说:管理 Minecraft 服务器一直让我感觉像是个奇怪的谜题。即使 Minecraft 看起来像是一个关于放置方块的“随意”游戏,服务器背后的技术管理(线程、内存、垃圾回收)却是一个令人着迷的优化挑战。

过去,我尝试编写插件(结果…“有趣”),但我吃了苦头才明白,真正的战斗几乎总是配置。

你有没有遇到过这种情况?想和朋友一起玩生存模式,搜索“最佳 paper 1.21 配置”,结果打开了 20 个标签页,却看到三篇互相矛盾的 Wiki。

计划:足够的混乱

厌倦了一遍又一遍复制粘贴相同的配置行,我决定构建 Paper Config Optimized

我不想只做“又一本指南”。我想要一个真正将社区最佳实践集中到可直接使用的文件中的地方。事实上,我已经如此热衷于这种“基础设施即代码”的方法,以至于最近对我们使用的官方 Docker 镜像仓库做出了首次贡献(在 itzg/docker-minecraft-server 中的 PR #3076),并计划继续贡献以改进整个生态系统。

“配方”(配置)

下面是我一直使用的配置。它基本上就是我的 “复制、粘贴、忘记” 模板。

这里重要的是我们向 Docker 传达了两个关键点:

  • “使用 Aikar 的参数” – 这样 Java 就不会在内存上挑剔。
  • “从仓库下载配置” – 这样游戏可以顺畅运行,无需手动干预。
services:
  mc:
    image: itzg/minecraft-server
    container_name: paper-lite
    restart: unless-stopped
    ports:
      - "25565:25565"

    # Interactive console (never hurts to see what's happening)
    stdin_open: true
    tty: true

    environment:
      # Mojang bureaucracy and software choice (Paper flies)
      EULA: "TRUE"
      TYPE: "PAPER"

      # Always the latest. Living on the edge.
      VERSION: "LATEST"

      # We activate Aikar's flags.
      # Trust me, you don't want to manage the Garbage Collector manually.
      USE_AIKAR_FLAGS: "true"

      # Timezone (change to yours so logs make sense)
      TZ: "America/Santiago"

      # ✨ THE MAGIC:
      # Automatically injects optimized configs from the repo at startup.
      PAPER_CONFIG_REPO: "https://raw.githubusercontent.com/Alpha018/paper-config-optimized/main"

    volumes:
      - ./minecraft-data:/data

如何运行?

只需将上述内容放入 docker-compose.yml 文件,在该文件夹中打开终端,然后运行:

docker compose up -d

⚖️ 平衡:优缺点

✅ 好处(Pros)

  • Speed – 在 2 分钟内从“零”到“优化的服务器”。
  • Maintenance – 通过使用 PAPER_CONFIG_REPO,如果明天有性能改进,只需重启容器即可应用。
  • Stability – 使用 Aikar’s Flags 可消除 90 % 的 Java 引起的卡顿峰值。

❌ 坏处(Cons)

  • Black Box – 如果你喜欢手动微调每个 view-distance,可能会觉得失去了一些控制(尽管你仍然可以覆盖文件)。
  • Dependency – 你依赖我的仓库(或你自己的分支)在启动时在线下载配置。

🚀 高级用户

此配置是我所称的“轻量技术生存”的理想选择。如果您计划建立一个大型公共社区(50+ 玩家)或想了解为何 12 GB RAM 是我对大型服务器的魔法数字,我撰写了更深入的技术指南。

在 Buy Me a Coffee 上查看高级技术指南

💌 特别致谢

致一位女孩,她在不自觉中推动我在业余时间继续创作和编程。致那曾经点燃我灵感的人:感谢 “YLP”,以及那些同样教会我的伤痕。

Back to Blog

相关文章

阅读更多 »

14. 使用 Terraform 配置 IAM 用户

实验室信息:Nautilus DevOps 团队正在尝试 Terraform provisioners。你的任务是创建一个 IAM 用户并使用 local‑exec provisioner 来 l...