美文网首页Minecraft我的世界Minecraft
在Ubuntu中用docker部署MC原版服务器

在Ubuntu中用docker部署MC原版服务器

作者: HoPGoldy | 来源:发表于2019-07-10 22:09 被阅读0次

    前言

    最近和基友心血来潮想重温下 mc 。但是实在是不想玩网易版的。于是又萌生出了部署个简易服务器的想法,在讨论后整理出了如下需求:

    • 要玩 mc 的最新版本(写下本文时是1.14.3)。
    • 完全纯净,不要任何mod
    • 要有光影。

    目标

    服务端

    • 新建一个Ubuntu 18.04的虚拟机。
    • 使用docker进行部署,方便管理。
    • 使用 NAT地址转换 模式的网卡转发端口到本机端口。
    • 基友通过局域网访问本机端口加入游戏。

    客户端

    • 客户端使用HMCL安装游戏。
    • 安装Optifine来使用光影。
    网络结构图

    至于为什么不直接在自己的 windows 里用docker部署 mc。是因为我觉得这样部署了之后以后想上云会比较简单,而且直接在 windows 里用 docker 的话也会启动一个轻量级linux虚拟机,感觉还是自己建虚拟机用起来更舒服。ok,接下来就开始动手。

    服务端部署

    如何部署一个ubuntu服务器这里就不再赘述,非常简单,具体可以参考 unbuntu server 虚拟机安装全攻略 。然后就是安装docker,执行如下命令即可,请确保自己已经完成了apt换源,不然会很慢:

    apt install docker.io
    

    安装完成后docker -v查看版本,我安装的是18.06.1-cedocker安装完了之后要先换源。先执行如下命令更换国内源:

    cat > /etc/docker/daemon.json << EOF
    {
      "registry-mirrors": [
        "https://dockerhub.azk8s.cn",
        "https://reg-mirror.qiniu.com",
        "https://quay-mirror.qiniu.com"
      ]
    }
    EOF
    

    然后输入如下命令重启docker即可

    systemctl daemon-reload && \
    systemctl restart docker
    

    安装 mc 服务器

    基础准备好了之后我们就可以开始安装mc的服务端了,得益于docker的高封装性。我们可以直接下载一个可用的完整服务器。这里用的服务器镜像是 itzg/minecraft-server ,这个是目前下载次数最高的 mc 镜像,可以任意指定游戏版本。输入以下命令来 下载镜像新建一个文件夹用于保存 mc 服务器文件

    # 拉取镜像
    docker pull itzg/minecraft-server
    # 新建游戏保存文件夹
    mkdir /home/mc-server
    

    等待下载完成之后输入以下命令来运行服务器:

    docker run -d \
    -p 25565:25565 \
    -e EULA=TRUE \
    -e VERSION=1.14.3 \
    -v /home/mc-server:/data \
    --restart always \
    --name mc itzg/minecraft-server
    

    解释一下参数的意思:

    参数 含义
    -d 后台运行容器
    -p 25565:25565 将容器的25565端口(:后)映射到主机的25565端口(:前)
    -e EULA=TRUE 同意EULA协议
    -e VERSION=1.14.3 指定服务器的版本
    -v /home/mc-server:/data 将主机的/home/mc-server目录挂载到容器的/data目录
    --restart always 容器一旦停止立刻重启
    --name mc 指定容器名为mc

    然后使用如下命令即可查看 mc 服务器的状态

    docker ps
    

    可以看到后面的STATUS状态表明服务器正在启动(health: starting),第一次启动可能会久一点,待其变为(healthy)时即代表服务器启动成功。

    CONTAINER ID    IMAGE                    COMMAND     CREATED           STATUS                            PORTS                                 NAMES
    eb0a7ef02dca    itzg/minecraft-server    "/start"    5 seconds ago     Up 3 seconds (health: starting)   0.0.0.0:25565->25565/tcp, 25575/tcp   mc
    

    这时候再访问/home/mc-server文件夹就发现,里边已经是一个完整的 mc 服务器包了。编辑其中的server.properties即可修改服务器的配置。具体配置项含义请参考 MC中文wiki - server.properties 。修改完成后:wq保存,然后执行如下命令即可重启服务器应用修改:

    docker restart mc
    

    至此服务端已经搭建好了,但是现在游戏服务只开放在虚拟机的25565端口上,我们来改一下virtalBox的配置,把虚拟机的对应端口映射到自己的电脑上。依次点击虚拟机的 设置 > 网络 > 网卡1 > 高级 > 端口转发 > 右边新增按钮 来新建端口转发,如下:

    虚拟机端口转发到自己主机

    这样虚拟机的25565端口就转发到了自己电脑上的25565端口,我们打开 mc 访问127.0.0.1:25565就可以连上服务器了。接下来来安装 mc 客户端。

    安装 mc 客户端

    这里要下载如下四个东西,如果你不想麻烦的话直接下载我准备好的压缩包,改个名字就能玩,下载地址: 百度网盘 提取码: nvoq

    软件 作用 下载地址
    java 运行 HMCL 启动器及 mc 下载
    HMCL 启动器 下载并管理游戏本体 下载
    optifine 光影的前置插件 下载
    光影包 我用的是 Slidur's Shaders这个随意 下载

    java的安装非常简单这里也不说了,一路确定下来就行。然后启动HMCL,点击 游戏列表 > 安装新游戏版本 > 选择自己想玩的版本,我这里是1.14.3。等待下载完成后会自动安装,等提示安装成功后即可。

    安装成功

    安装光影

    要想使用光影的话就要先安装前置插件optifine。点此 OptiFine - Download 下载optifine,注意选择对应版本。注意,点击下载会先跳转到一个广告页面,注意规避。这里我使用HMCL安装optifine时虽然可以安装成功,但是启动游戏时会报错,所以只得手动下载安装。

    下载完成后应该是一个名如OptiFine_1.14.3_HD_U_F1.jar的文件。直接运行,在打开的窗口中选择你游戏安装的.minecraft目录点击Install即可。一会后会弹出安装成功。

    安装 optifine

    安装好了之后打开.minecraft\shaderpacks文件夹,将你下载好的光影包放进去即可。如果你没有这个文件夹的话可以新建一个,或者启动游戏,依次点击 选项 > 视频设置 > 光影 > 光影包文件夹 也可以打开。记得在启动器里选择optifine版本的 mc。它默认是启动原版的。

    安装了optifine的mc

    然后启动游戏选择光影包即可。

    加入游戏

    因为虚拟机就跑在我的电脑上,所以我直接用127.0.0.1:25565就可以连接服务器,然后在cmd里用ipconfig获取我电脑的局域网 ip。然后交给基友,就可以愉快的开黑啦。

    image.png

    问题解决

    unknow host:如果显示未知主机的话检查你的:是不是用的中文冒号。
    连接超时:一共需要做两次端口转发,docker转发到虚拟机虚拟机转发到本地主机。确保都做好了。
    服务器状态显示旧版:刷新几次就好了,或者直接连.

    参考

    相关文章

      网友评论

        本文标题:在Ubuntu中用docker部署MC原版服务器

        本文链接:https://www.haomeiwen.com/subject/zifckctx.html