发布于 

在Linux服务器下搭建一个Minecraft服务器

朋友最近租了一台服务器在那闲置,刚好我这几天又回坑mc,我打算用那个服务器开个服供我们俩玩。搭建服务器我们就只要用docker非常的简单,有兴趣你可以自己也搭一个玩。

SSH的坑

首先就是把ssh搞一下,咱的ssh一段时间不操作的话服务器会断开连接非常蛋疼,经常下东西下一半我连接就断了。这个解决方案百度上很多,我就记录一下我用方案把。

我是用修改Config文件的方法去解决的,听说可以命令后带参数,但是我这种懒人肯定使用一劳永逸的方法啦~

我们找到所在用户的.ssh目录,如果是root用户就在/root/.ssh下创建一个config文件

1
$ nvim ~/.ssh/config

在这个文档中加一句

1
ServerAlinveInterval 60

保存退出,然后重启一下shell即可。

安装docker

docker是一种虚拟化容器,可以快速搭建一个环境。

我这个服务器是Ubuntu的,包管理器和CentOS不一样,所以CentOS安装步骤就自己去搜一下吧。

Ubuntu用的是apt,安装的话就一行命令即可。

1
$ sudo apt install docker.io

查看安装成功就用万年查版本。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
$ snap info docker
name: docker
summary: Docker container runtime
publisher: Canonical✓
contact: snappy-devel@lists.ubuntu.com
license: Apache-2.0
description: |
Build and run container images with Docker.

This build requires all files that Docker uses, such as dockerfiles, to be in $HOME. Keep files
there for 'docker build', 'docker save' and 'docker load'.

This snap is built by Canonical based on source code published by Docker, Inc. It is not endorsed
or published by Docker, Inc.

Docker and the Docker logo are trademarks or registered trademarks of Docker, Inc. in the United
States and/or other countries. Docker, Inc. and other parties may also have trademark rights in
other terms used herein.
snap-id: sLCsFAO8PKM5Z0fAKNszUOX0YASjQfeZ
channels:
stable: 18.09.9 2019-11-18 (423) 126MB -
candidate: 18.09.9 2020-03-18 (428) 126MB -
beta: 18.09.9 2020-03-18 (428) 126MB -
edge: 18.09.9 2020-03-18 (428) 126MB -
17.09/stable: –
17.09/candidate: 17.09.1-ce 2017-12-22 (232) 44MB -
17.09/beta: 17.09.1-ce 2017-12-20 (232) 44MB -
17.09/edge: 17.09.1-ce 2017-12-14 (232) 44MB -
17.06/stable: 17.06.2-ce 2017-12-22 (179) 43MB -
17.06/candidate: 17.06.2-ce 2017-10-10 (179) 43MB -
17.06/beta: ↑
17.06/edge: 17.06.2-ce-1 2018-01-03 (237) 44MB -
17.03/stable: 17.03.2-ce-1 2017-07-20 (159) 42MB -
17.03/candidate: 17.03.2-ce-1 2017-06-30 (159) 42MB -
17.03/beta: ↑
17.03/edge: 17.03.2-ce-1 2017-06-30 (159) 42MB -

安装Minecraft服务器

首先就拉取一下映像

1
$ docker pull itzg/minecraft-server

下载过程可能有点慢,耐心等一下就好。今天搞这个最开始用别的方法等了3个小时最后换这个方法半小时不到就搭建好了感动世界。

拉取完毕后能直接运行啦

1
2
3
4
5
6
docker run -d \
-p 25565:25565 \
-e EULA=TRUE \
-e VERSION=1.13.3 \
-v ~/mc-server:/data \
--name mc itzg/minecraft-server

为了看得清楚就分段写了。解释一下参数:

  • -p后是mc服务器的端口,是将容器的端口映射到服务器端口上(前是容器端口,后是服务器端口)
  • 第一个-e是同意EULA协议
  • 第二个-e是游戏的版本,我这里刚回坑太高的版本玩的怀疑人生就1.13.2了
  • -v是mc服务器的数据存储位置,把冒号前的地址改为你的存放路径即可
  • –name是指定容器名这里是mc

踩坑记录

如果你和我一样是Ubuntu18.04那能运行是出了鬼了。这里小小的踩了坑,我在网上找到了解决方案我就搬运一下啦,懒得自己写(原地址)

在Ubuntu18.04安装docker之后,以登陆用户身份启动docker出错:

执行docker相关命令(如docker ps -a),出现

1
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/json?all=1: dial unix /var/run/docker.sock: connect: permission denied

原因是:docker进程使用Unix Socket而不是TCP端口。而默认情况下,Unix socket属于root用户,需要root权限才能访问。

解决方案

1、使用sudo获取管理员权限,运行docker命令,如:

1
sudo docker ps -a

2、在安装docker时,已经创建了一个名为docker的用户组,守护进程启动的时候,会默认赋予用户组docker读写Unix socket的权限,因此只要将当前用户加入到docker用户组中,那当前用户就有权限访问Unix socket了,进而也就可以执行docker相关命令

1
2
3
sudo gpasswd -a $USER docker     #将登陆用户加入到docker用户组中
newgrp docker #更新用户组
docker ps -a #测试docker命令是否可以使用sudo正常使用

如果用户组docker不存在(安装完一般就有了),则可先创建该用户组:

1
sudo groupadd docker     #创建docker用户组

(PS:你按命令走下来估计问题就解决了,然后run一下)

关于非正版登录

有些小伙伴家境贫寒付费不起就玩盗版,如果是默认的话盗版是无法登录的。我们需要去修改一下服务器存放目录下的server.properties文件中的online-mode把后面的ture改成false即可。