🎮 基于 Docker 的 Minecraft 服务器解决方案,支持多种服务器核心和 Java 版本。
# 创建 minecraft 目录
mkdir minecraft
# 下载并放置服务器核心文件 (以 Paper 为例)
wget -O minecraft/server.jar https://fill-data.papermc.io/v1/objects/d310c61899acc608b683515c5c7ef929774bfd1b90262dac965e76c7e9ea8d22/paper-1.21.8-30.jar
# 或者使用其他服务器核心
# cp your-server.jar minecraft/server.jar
# 复制环境配置模板
cp .env.example .env
# 编辑配置 (可选)
nano .env
# 构建并启动 (首次运行)
docker-compose up -d
# 查看日志
docker-compose logs -f
# 停止服务器
docker-compose down
# 同意 EULA
echo "eula=true" > minecraft/eula.txt
# 重新启动
docker-compose up -d
| 环境变量 | 默认值 | 说明 |
|---|---|---|
JAVA_VERSION | 21 | Java 版本 |
PUID | 1000 | 容器用户 UID |
PGID | 1000 | 容器用户 GID |
JAVA_OPTS | -Xms2G -Xmx4G ... | JVM 参数 |
SERVER_PORT | 25565 | 服务器端口 |
minecraft/ # 服务器文件目录
├── server.jar # 服务器核心文件
├── server.properties # 服务器配置
├── eula.txt # EULA 协议
├── world/ # 世界文件
├── plugins/ # 插件目录 (Bukkit/Spigot/Paper)
├── mods/ # 模组目录 (Forge/Fabric)
└── logs/ # 日志文件
# 启动服务器
docker-compose up -d
# 停止服务器
docker-compose down
# 重启服务器
docker-compose restart
# 查看实时日志
docker-compose logs -f
# 进入容器终端
docker-compose exec minecraft-server bash
# 执行服务器命令
docker-compose exec minecraft-server minecraft-command "say Hello World"
# 备份世界文件
tar -czf backup-$(date +%Y%m%d).tar.gz minecraft/
编辑 .env 文件中的 JAVA_OPTS:
JAVA_OPTS=-Xms4G -Xmx8G -XX:+UseG1GC
server.jar 文件minecraft/ 目录,请注意备份2. 内存不足
# 在 .env 中调整内存
JAVA_OPTS=-Xms1G -Xmx2G
3. 端口被占用
# 在 .env 中更改端口或者直接修改docker-compose.yml
SERVER_PORT=25566
4. 服务器无法启动
# 查看详细日志
docker-compose logs minecraft-server
本项目基于 MIT 许可证开源。
Content type
Image
Digest
sha256:a9bc21f9c…
Size
97 MB
Last updated
about 1 year ago
docker pull awsl1414/my-minecraft-server