lexfrei/papermc的问题、故障或支持,请参考上述官方PaperMC资源。
本仓库仅提供:
有关Docker镜像或Helm图表(容器构建、部署、图表配置)的问题,请使用本仓库的问题跟踪器。
本服务器兼容:
-XX:MaxRAMPercentage=80%latest - 指向最新的Minecraft版本<version> - 特定的Minecraft版本(例如1.21.5),指向与其对应的构建标签相同的镜像<version>-<build> - 带有PaperMC构建号的特定Minecraft版本(例如1.21.5-20)标签关系示例:
latest → <最新版本> → <最新版本>-<构建号>(均指向相同镜像)<旧版本> → <旧版本>-<构建号>(均指向相同镜像)要查找最新可用标签,请查看Docker Hub。
此镜像每天自动构建当前主要版本内的最新三个次要版本。例如:
仅维护三个最新的次要版本,而非主要版本范围内的所有版本。随着新次要版本的发布,旧版本将从主动维护中移除。
<version>)始终指向其对应的特定构建标签(如<version>-<build>)建议:测试时使用
latest标签,但生产环境中切换到特定的版本-构建标签(如<version>-<build>)以确保稳定性。
提供了适用于Kubernetes部署的Helm图表,支持各种插件、入口和高级网络选项的轻松安装和配置。
bash# 从GitHub Container Registry安装图表 helm install papermc \ oci://ghcr.io/lexfrei/papermc \ --version 0.0.1 # 使用自定义值安装 helm install papermc \ oci://ghcr.io/lexfrei/papermc \ --version 0.0.1 \ --values values.yaml
有关详细的图表文档和配置示例,请参见图表文档。
| 变量 | 描述 | 默认值 |
|---|---|---|
JAVAFLAGS | 用于优化性能的JVM标志 | Aikar's flags |
PAPERMC_FLAGS | 额外的PaperMC服务器标志 | --nojline |
JAVA_MAX_MEM_RATIO | 容器内存的最大堆百分比 | 80(80%) |
注意:内存通过
-XX:MaxRAMPercentage自动管理。JVM默认将使用容器内存的80%。使用Docker的--memory标志或Kubernetes资源限制设置容器内存限制。
默认情况下,JVM使用容器内存的80%。要自定义:
bash# 更改内存百分比(使用75%而非80%) docker run -d \ -e JAVA_MAX_MEM_RATIO=75 \ --memory 4G \ lexfrei/papermc:latest # 禁用自动内存管理并设置显式堆大小 docker run -d \ -e JAVA_MAX_MEM_RATIO=0 \ -e JAVAFLAGS="-Xms2G -Xmx3G" \ --memory 4G \ lexfrei/papermc:latest
设置显式内存(-Xmx)时,为JVM元空间、本地内存和操作系统开销留出约1GB空间。
PaperMC的内存需求因玩家数量、世界大小和已安装插件而异。以下是一些一般建议:
| 玩家数量 | 推荐内存 | 说明 |
|---|---|---|
| 1-5名玩家 | 2GB | 适用于小型、类原版服务器 |
| 5-15名玩家 | 4GB | 适合中等插件使用 |
| 15-30名玩家 | 6-8GB | 推荐用于带有多个插件的大型服务器 |
| 30名以上玩家 | 10GB+ | 用于有许多插件和大型世界的繁忙服务器 |
这些值是起点,应根据特定服务器性能进行调整。
Kubernetes用户:考虑使用垂直Pod自动扩缩器根据实际使用模式自动调整资源限制。这对于负载变化的Minecraft服务器特别有帮助。
bashdocker run -d \ --name minecraft-server \ -p 25565:25565/tcp \ -p 25565:25565/udp \ --memory 4G \ -v /path/to/data:/data \ lexfrei/papermc:latest
注意:对于生产环境,测试后将
latest替换为特定的版本-构建标签。
yamlversion: '3' services: papermc: image: lexfrei/papermc:latest container_name: minecraft-server ports: - "25565:25565/tcp" - "25565:25565/udp" volumes: - ./data:/data deploy: resources: limits: memory: 4G restart: unless-stopped
注意:对于生产部署,使用特定的版本-构建标签而非
latest。
有关Kubernetes部署示例,请参见examples/kubernetes目录。
在Kubernetes中运行时,考虑使用垂直Pod自动扩缩器(VPA)自动调整CPU和内存请求:
yamlapiVersion: autoscaling.k8s.io/v1 kind: VerticalPodAutoscaler metadata: name: minecraft-vpa spec: targetRef: apiVersion: "apps/v1" kind: Deployment name: minecraft-server updatePolicy: updateMode: "Auto" resourcePolicy: containerPolicies: - containerName: "*" minAllowed: memory: "1Gi" cpu: "500m" maxAllowed: memory: "8Gi" cpu: "2"
VPA将随时间分析资源使用情况并自动调整资源请求,有助于优化资源分配,同时防止高峰期的OOM终止。
使用此容器在同一主机上运行多个Minecraft服务器非常简单。每个容器需要自己的端口和数据卷:
yamlversion: '3' services: survival: image: lexfrei/papermc:latest container_name: mc-survival ports: - "25565:25565/tcp" - "25565:25565/udp" volumes: - ./survival-data:/data deploy: resources: limits: memory: 4G restart: unless-stopped creative: image: lexfrei/papermc:latest container_name: mc-creative ports: - "25566:25565/tcp" # 注意不同的主机端口 - "25566:25565/udp" volumes: - ./creative-data:/data deploy: resources: limits: memory: 4G restart: unless-stopped
此示例在默认端口25565上运行生存服务器,在端口25566上运行创造服务器。
要安装插件,只需将JAR文件放在/data/plugins目录中。PaperMC将自动从该目录加载插件。
为了更好地组织,还可以使用/data/plugins/update作为目录来存储PaperMC将自动更新的插件。
重要:容器以非root用户(UID 9001)运行。挂载卷时,确保
/data目录具有适当的权限。
bashdocker run -d \ --name minecraft-server \ -p 25565:25565/tcp \ -p 25565:25565/udp \ --memory 4G \ -v /path/to/data:/data \ lexfrei/papermc:latest
通过此设置,可以通过将插件放在/path/to/data/plugins中来添加插件。
以下插件已知与此容器兼容良好:
这些仅是建议 - 所有标准Paper插件都应与此容器兼容。
在数据目录中创建server.properties文件来自定义服务器设置。如果不存在该文件,首次运行时将创建默认文件。
示例配置:
propertiesserver-port=25565 motd=My PaperMC Server max-players=20 view-distance=10 spawn-protection=0
如果需要使用RCON进行服务器管理,有两个选项:
要启用RCON,将以下设置添加到server.properties:
propertiesenable-rcon=true rcon.password=your_secure_password rcon.port=25575
运行容器时暴露RCON端口:
bashdocker run -d \ --name minecraft-server \ -p 25565:25565/tcp \ -p 25565:25565/udp \ -p 25575:25575/tcp \ # 暴露RCON端口 --memory 4G \ -v /path/to/data:/data \ lexfrei/papermc:latest
PaperMC服务器日志存储在/data/logs目录中,可以通过挂载此卷访问。您可以使用以下命令查看:
bash# 查看容器日志 docker logs minecraft-server # 从挂载的卷访问详细日志 cat /path/to/data/logs/latest.log
要自定义日志行为,可以在首次服务器运行后修改/data/log4j2.xml。例如,更改保留策略或日志级别。
如果使用DynMap,请确保暴露8123端口:
bashdocker run -d \ --name minecraft-server \ -p 25565:25565/tcp \ -p 25565:25565/udp \ -p 8123:8123/tcp \ # 暴露DynMap Web界面 --memory 4G \ -v /path/to/data:/data \ lexfrei/papermc:latest
Minecraft服务器需要正确的关闭过程来保存所有世界数据并防止损坏。此容器配置为正确处理Docker停止信号。
停止容器时:
bash# 允许30秒进行干净关闭 docker stop --time=30 minecraft-server
这使服务器有时间在终止前正确保存所有区块和玩家数据。
容器在其健康检查中包含合理的启动周期,以适应PaperMC初始化所需的时间。更大的世界和更多的插件将增加启动时间。
建议定期备份服务器数据。最简单的方法是停止容器并复制数据目录:
bashdocker stop minecraft-server cp -r /path/to/data /path/to/backup docker start minecraft-server
对于自动备份,考虑使用专用备份解决方案,如Duplicati或Restic。
此容器使用位于/data的单个卷,其中包含所有持久数据。以下是此卷中存储的内容:
| 路径 | 描述 |
|---|---|
/data/world/ | 主世界数据 |
/data/world_nether/ | 下界维度 |
/data/world_the_end/ | 末地维度 |
/data/plugins/ | 所有已安装插件 |
/data/config/ | 配置文件 |
/data/logs/ | 服务器日志 |
/data/server.properties | 主服务器配置 |
/data/banned-ips.json | IP封禁列表 |
/data/banned-players.json | 玩家封禁列表 |
/data/ops.json | 服务器操作员列表 |
/data/whitelist.json | 白名单玩家列表 |
挂载卷时,始终确保保留整个/data目录以维护所有服务器状态。
如果容器尝试访问挂载的卷时出现权限错误,可能是因为容器
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
MacOS OrbStack 容器配置
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务