示例¶
各种示例都保存在仓库中。下面的章节重点介绍了一些特定的示例。
兼容基岩版的服务器¶
使用GeyserMC插件与Paper服务器(或类似服务器)“使Minecraft基岩版的客户端能够加入你的Minecraft Java服务器”。该示例还包括Floodgate,它“允许经过Xbox Live认证的基岩版用户无需Java版账户即可加入”。
services:
mc:
image: itzg/minecraft-server
environment:
EULA: "true"
TYPE: "PAPER"
PLUGINS: |
https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/spigot
https://download.geysermc.org/v2/projects/floodgate/versions/latest/builds/latest/downloads/spigot
ports:
- "25565:25565"
- "19132:19132/udp"
volumes:
- ./data:/data
Lazymc - 在空闲时让Minecraft服务器休息¶
通过lazymc-docker-proxy,你能够将lazymc与Minecraft容器一起使用。
services:
lazymc:
container_name: lazymc
image: ghcr.io/joesturge/lazymc-docker-proxy:latest
environment:
# 指向Minecraft服务器的服务名称
SERVER_ADDRESS: mc:25565
# 必须找到要管理的容器
LAZYMC_GROUP: mc
restart: unless-stopped
volumes:
# 你应该将Minecraft服务器目录挂载到/server下,使用只读模式。
- data:/server:ro
# 你需要提供docker socket,以便容器可以运行docker命令
- /var/run/docker.sock:/var/run/docker.sock:ro
ports:
# lazymc-docker-proxy充当代理,因此不需要在Minecraft容器上暴露服务器端口
- "25565:25565"
# 标准的Docker Minecraft服务器,也适用于其他服务器类型
mc:
image: itzg/minecraft-server:java21
container_name: minecraft-server
# 我们需要在这里添加一个标签,以便lazymc-docker-proxy知道要管理哪个容器
labels:
- lazymc.group=mc
tty: true
stdin_open: true
# 这个容器应仅由lazymc容器管理,因此将重启设置为no,否则容器会再次启动...
restart: no
environment:
EULA: "TRUE"
volumes:
- data:/data
volumes:
data:
Lazytainer - 根据流量停止Minecraft容器¶
监控Minecraft容器的网络流量。如果有流量,容器运行,否则容器停止/暂停。
通过将Lazytainer与docker-minecraft-server一起使用,可以实现与Lazymc类似的行为。
services:
lazytainer:
image: ghcr.io/vmorganp/lazytainer:master
environment:
VERBOSE: false
ports:
- 25565:25565
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
labels:
- lazytainer.group.minecraft.sleepMethod=stop
- lazytainer.group.minecraft.ports=25565
- lazytainer.group.minecraft.minPacketThreshold=2 # Start after two incomming packets
- lazytainer.group.minecraft.inactiveTimeout=600 # 10 minutes, to allow the server to bootstrap. You can probably make this lower later if you want.
restart: unless-stopped
network_mode: bridge
mc:
image: itzg/minecraft-server
environment:
EULA: TRUE
TYPE: PAPER
MEMORY: 4G
volumes:
- ./data:/data
labels:
- lazytainer.group=minecraft
depends_on:
- lazytainer
network_mode: service:lazytainer
tty: true
stdin_open: true
restart: unless-stopped