Docker我的世界服务器快速搭建指南

虽然我的 Nas 没有像 阿B 上那些热门的网络博主那样部署些精彩好玩的应用,大部分时间也仅仅是内网SMB来共享文件,确实有点浪费我这块8100的性能(然而我连硬盘都很久没加了).

闲着也是闲着,干脆我们就用Dcoekr加上ipv6部署mc的服务器吧,万一我那些同学要和我一起联机呢,万……万一呢。

诶,但这篇并不能算上一篇合格的教程的,仅是记录一些用docker开mc服的docker-compose文件,这些compose文件都大差不差,这里仅提供一些参考,毕竟官方的Doc全英文有点难看懂,很多时候大家只是想和朋友联个机,简单地快速地完事就好。

所以有问题请查阅官方Doc(https://docker-minecraft-server.readthedocs.io/en/latest/  一定要养成看doc的习惯喔),
或者搜索GitHub的issue(https://github.com/itzg/docker-minecraft-server),
以及查看官方的演示(https://github.com/itzg/docker-minecraft-server/tree/master/examples)。

至于为什么要用docker和docker-compose部署,“无他,部署简单,管理方便,也不会对原本系统环境产生影响……挺好用的”。

所以,有关docker的安装与基本操作本文就不过多赘述了,不懂请自行搜索查阅,阿B挺多教程的。

首先先分类,mc开服,要不纯净原版服,要不就是mod服;加上版本的差异也就多个java版和基岩版,而基岩版的mod和插件都没有java好玩丰富,大多都是纯净服,所以基本上还是分成两类,多个基岩版的纯净服。

不建议在docker-compose里直接修改Server.properties,建议在完成部署后容器关闭时修改.

连接

如果电脑是Windows,可以用"win+x+a"输入"ipc"+tab键+回车快速查看本机ip地址,

docker-compose up -d之后 可以dockers attach [container_name]进入服务器命令窗口.

客服端可以在相应版本的游戏中,填入服务端的内网ip地址(大部分为192.168.xxx.xxx)加设定的端口号进入游戏测试,没问题可以试试用服务端的公网ipv6测试,java版需要用[]括起来ip地址,大概如[1xxx:2xxx:3xxx:4xxx:5xxx:6xxx:7xxx:8xxx]:25565;

基岩版就不用括起来了,不过这里有个小问题,如果你是Windows部署的bds,ipv6访问不了的,可能需要在cmd中输入netsh interface ipv6 set privacy state=disable,下面会到bds会详细讲

当然ipv6会变是吧,可以到阿里、腾讯、百度之类的云服务商低价买个域名,在本地搭建一个ddns服务,将ipv6绑定域名,设置好域名解析,直接就可以用ip地址:25565访问服务器了,不懂请自行搜索查阅.

纯净服

java

version: "3.8"

services:
  mc-servers:
    image: itzg/minecraft-server
    container_name: mcs-java
    restart: always
    tty: true # 容器可交互
    stdin_open: true # 容器可输入
    ports:
      - "25565:25565"
    environment:
      EULA: "TRUE" # 同意MOJANG EULA协议
      #可以设置服务器核心,变插件服,纯净服可以不打
      #TYPE: PAPER  
      VERSION: 1.21.4 # 我的世界版本号
      INIT_MEMORY: 2g
      MAX_MEMORY: 4g
    volumes:
      - ./data:/data

Minecraft Bedrock Server(BDS)

如果是在Windows上部署的BDS,出于Windows“保护”IPv6的目的,Windows会创建“临时IPv6地址”,其他服务到没什么问题,但只有bds由于临时IPv6的存在无法访问,需要使用netsh interface ipv6 set privacy state=disable这条命令来关闭临时地址,重启之后便可以通过ipv6访问bds了

version: "3.8"

services:
  mc-servers:
    image: itzg/minecraft-bedrock-server
    container_name: mcs-bds
    restart: always
    stdin_open: true
    tty: true
    ports:
      - "19132:19132/udp"
      - "19133:19133/udp"
    environment:
       EULA: "TRUE"
       VERSION: latest
    volumes:
       - ./data:/data

mod服

整合包

不管是别人做好的整合包,还是自己需要添加mod简单制作整合包,都可以用此进行创建,需要注意整合包的Mod加载器是什么,以及对应java版本

version: "3.8"

services:
  mc-servers:
    image: itzg/minecraft-server:java21
    container_name: mcs-java-mod
    restart: always
    tty: true
    stdin_open: true
    ports:
      - "25565:25565"
    environment:
      EULA: "TRUE"
      # Mod加载器[FORGE NEOFORGE FABRIC]
      TYPE: FABRIC  
      VERSION: 1.21.4
      # 对应Mod加载器版本
      FABRICVERSION: 0.16.10 
      # 整合包文件地址
      GENERIC_PACK: /modpacks/xxxxxxxx.zip
      MEMORY: 4g
    volumes:
    - ./modpacks:/modpacks:ro #ro只读
    - ./data:/data

服务包

除了整合包,也会有大佬发布服务端用的一键开服的服务包,可以用此进行创建,这里用异界生活幻想 v1.3做演示(https://www.bilibili.com/video/BV1tU4y1A7km/)

version: "3.8"

services:
  mc-servers:
    image: itzg/minecraft-server:java8
    container_name: mcs-java-isekai
    restart: always
    tty: true
    stdin_open: true
    ports:
      - "25565:25565"
    environment:
      EULA: "TRUE"
      # 对应服务包的Mod加载器
      TYPE: FORGE
      VERSION: 1.16.5
      # 服务包中的Mod加载器名称及位置
      FORGE_INSTALLER: forge-1.16.5-36.2.0.jar
      ONLINE_MODE: FALSE
      MEMORY: 4g
    volumes:
      # 解压出来的服务包文件
      - ./Serverpack1.3:/data

内容参考

「保姆级教程」 如何在docker上搭建mc服务器
Minecraft Server on Docker (Java Edition)
让你的BDS服务器支持IPv6