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

前言

最近和基友心血来潮想重温下 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转发到虚拟机虚拟机转发到本地主机。确保都做好了。
服务器状态显示旧版:刷新几次就好了,或者直接连.

参考

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容