---
title: Docker部署MC游戏开服
published: 2025-01-18
tags: [Docker, 教程]
category: 教程
draft: false
---

### 首先安装`Docker`和`Docker-compose`

国内环境可以使用我修改的开源脚本安装，和配置镜像加速
```
bash <(curl -sSL https://gitee.com/wanfeng789/shell/raw/master/docker.sh)
```

### 创建配置文件

`docker-compose.yml`配置示例
```
services:
  minecraft:
    image: itzg/minecraft-server
    environment:
      EULA: "true"
      TYPE: "FORGE"  # 可选使用 Forge 服务器
      VERSION: "1.20.1"  # 可选指定 Minecraft 版本
    ports:
      - "25565:25565"
    volumes:
      - ./data:/data
    stdin_open: true
    tty: true
    restart: always
```

然后一键启动
```
docker compose up -d
```

进入游戏后选择多人服务器，服务器地址填：`公网IP:25565`，如果你是用的nat服务器则需要将`25565`端口映射出来，然后服务器地址那里的端口替换成你映射出来的端口。

映射出来的配置文件在当前目录的`data`目录下

### 更多环境变量


### 1. **基础配置**
| 变量名               | 默认值       | 说明                                                                 |
|----------------------|--------------|----------------------------------------------------------------------|
| `EULA`               | `"false"`    | 必须设置为 `"true"` 以接受 Minecraft 的最终用户许可协议（EULA）。     |
| `TYPE`               | `"VANILLA"`  | 服务器类型，例如 `"FORGE"`、`"FABRIC"`、`"SPIGOT"` 等。              |
| `VERSION`            | `"LATEST"`   | Minecraft 版本，例如 `"1.20.1"`。                                    |
| `MEMORY`             | `"1G"`       | 分配给服务器的内存大小，例如 `"2G"` 或 `"4G"`。                      |
| `JVM_OPTS`           | `""`         | 自定义 JVM 参数，例如 `"-XX:+UseG1GC"`。                             |
| `JVM_XX_OPTS`        | `""`         | 自定义 JVM 的 `-XX` 参数，例如 `"-XX:+UseStringDeduplication"`。     |

### 2. **服务器类型相关**
| 变量名               | 默认值       | 说明                                                                 |
|----------------------|--------------|----------------------------------------------------------------------|
| `FORGE_VERSION`      | `""`         | 指定 Forge 版本，例如 `"47.3.0"`。                                  |
| `FABRIC_VERSION`     | `""`         | 指定 Fabric 版本，例如 `"0.14.22"`。                                |
| `SPIGOT_DOWNLOAD_URL`| `""`         | 自定义 Spigot 的下载 URL。                                          |

### 3. **网络和连接**
| 变量名               | 默认值       | 说明                                                                 |
|----------------------|--------------|----------------------------------------------------------------------|
| `SERVER_NAME`        | `"Minecraft Server"` | 服务器名称，显示在客户端服务器列表中。                              |
| `MOTD`               | `"A Minecraft Server"` | 服务器欢迎信息（MOTD）。                                           |
| `ONLINE_MODE`        | `"true"`     | 是否启用正版验证，设置为 `"false"` 允许非正版玩家连接。              |
| `MAX_PLAYERS`        | `"20"`       | 服务器最大玩家数量。                                                |
| `VIEW_DISTANCE`      | `"10"`       | 玩家视野距离（区块数）。                                            |
| `ENABLE_RCON`        | `"false"`    | 是否启用 RCON（远程控制）。                                         |
| `RCON_PASSWORD`      | `""`         | RCON 密码。                                                         |
| `RCON_PORT`          | `"25575"`    | RCON 端口。                                                         |

### 4. **世界和游戏设置**
| 变量名               | 默认值       | 说明                                                                 |
|----------------------|--------------|----------------------------------------------------------------------|
| `LEVEL`              | `"world"`    | 世界名称。                                                          |
| `LEVEL_TYPE`         | `"default"`  | 世界类型，例如 `"flat"`、`"largebiomes"`。                          |
| `GAMEMODE`           | `"survival"` | 默认游戏模式，例如 `"creative"`、`"adventure"`。                    |
| `DIFFICULTY`         | `"easy"`     | 游戏难度，例如 `"normal"`、`"hard"`。                               |
| `ALLOW_FLIGHT`       | `"false"`    | 是否允许飞行。                                                      |
| `ALLOW_NETHER`       | `"true"`     | 是否允许下界传送门。                                                |
| `SPAWN_ANIMALS`      | `"true"`     | 是否生成动物。                                                      |
| `SPAWN_MONSTERS`     | `"true"`     | 是否生成怪物。                                                      |
| `SPAWN_NPCS`         | `"true"`     | 是否生成村民。                                                      |
| `GENERATE_STRUCTURES`| `"true"`     | 是否生成结构（如村庄、神庙）。                                      |

### 5. **插件和模组**
| 变量名               | 默认值       | 说明                                                                 |
|----------------------|--------------|----------------------------------------------------------------------|
| `MODS`               | `""`         | 自动下载并安装模组的 URL 列表（以逗号分隔）。                        |
| `REMOVE_OLD_MODS`    | `"false"`    | 是否在启动时删除旧的模组文件。                                      |
| `REMOVE_OLD_MODS_INCLUDE` | `""`    | 指定要删除的模组文件（支持通配符）。                                |
| `REMOVE_OLD_MODS_EXCLUDE` | `""`    | 指定要保留的模组文件（支持通配符）。                                |

### 6. **备份和日志**
| 变量名               | 默认值       | 说明                                                                 |
|----------------------|--------------|----------------------------------------------------------------------|
| `ENABLE_AUTOMATIC_BACKUPS` | `"false"` | 是否启用自动备份。                                                  |
| `BACKUP_INTERVAL`    | `"24h"`      | 自动备份的时间间隔。                                                |
| `BACKUP_TARGET`      | `"world"`    | 备份的目标文件夹。                                                  |
| `LOG_TIMESTAMP`      | `"false"`    | 是否在日志中添加时间戳。                                            |

### 7. **其他配置**
| 变量名               | 默认值       | 说明                                                                 |
|----------------------|--------------|----------------------------------------------------------------------|
| `OPS`                | `""`         | 管理员列表（以逗号分隔的玩家名称）。                                |
| `WHITELIST`          | `""`         | 白名单列表（以逗号分隔的玩家名称）。                                |
| `BANNED_IPS`         | `""`         | 封禁的 IP 列表（以逗号分隔）。                                      |
| `BANNED_PLAYERS`     | `""`         | 封禁的玩家列表（以逗号分隔）。                                      |
| `ENABLE_COMMAND_BLOCK` | `"false"`  | 是否启用命令方块。                                                  |
| `MAX_TICK_TIME`      | `"60000"`    | 服务器最大 tick 时间（毫秒）。                                      |
| `MAX_WORLD_SIZE`     | `"29999984"` | 最大世界大小（区块数）。                                            |
