docker 启动 mc 服务器

使用镜像

image: https://hub.docker.com/r/itzg/minecraft-server

github: https://github.com/itzg/docker-minecraft-server

document: https://docker-minecraft-server.readthedocs.io/en/latest/

配置文件

原版

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
services:
  mc:
    image: itzg/minecraft-server:java17
    container_name: mc
    ports:
      - "25565:25565"
    environment:
      EULA: "TRUE"
      TYPE: "VANILLA"
      VERSION: "1.20.1"
      MEMORY: "2G"
    volumes:
      - ./data:/data
    restart: unless-stopped

开启 forge 版本的配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
services:
  mc:
    image: itzg/minecraft-server:stable-java17
    tty: true
    stdin_open: true
    ports:
      - "25565:25565"
    environment:
      EULA: "TRUE"
      VERSION: "1.20.1"
      TYPE: "FORGE"
      FORGE_VERSION: "47.4.10"
      MEMORY: "3G"
    volumes:
      - ./data:/data

版本可在网站查询 https://files.minecraftforge.net/net/minecraftforge/forge/

下载整合包

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
services:
  mc:
    image: itzg/minecraft-server:java17
    container_name: mc
    ports:
      - "25565:25565"
    environment:
      EULA: "TRUE"
      TYPE: "CURSEFORGE"
      CF_API_KEY: "你的key"
      CF_MODPACK_SLUG: "modpack-slug"
      CF_MODPACK_VERSION: "47.4.10"
      MEMORY: "4G"
    volumes:
      - ./data:/data

服务器端口

获取当前 zone

1
firewall-cmd --get-active-zones

开放端口

1
sudo firewall-cmd --zone=public --permanent --add-port=25565/tcp

重载

1
sudo firewall-cmd --reload

查询确认

1
sudo firewall-cmd --zone=public --list-all

自定义域名

不可使用 cloudflare 代理,不可使用 nginx 反向代理

但是可以使用 SRV 记录让服务直接输入域名,不用输入端口

名称填入 _minecraft._tcp.your-mc-server.yexca.net,优先级为 0,权重常用 510,端口写服务器端口,比如 25565,目标写对应域名 your-mc-server.yexca.net

服务器配置

在启动完成后,./data 有配置文件,具体为 https://wiki.biligame.com/mc/%E6%9C%8D%E5%8A%A1%E7%AB%AF%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F

This post is licensed under CC BY-NC-SA 4.0 by the author.