April 16, 2022

Установка и настройка сервера Minecraft через Docker


Место для вступления и Тд



Системные требования

ОС: Ubuntu 18.04 и выше

Хранилище: от 15GB свободного дискового пространства

ОЗУ: от 2GB

Процессор: соответствие минимальным требованиям ОС, 1 ядро и выше

Подготовка машины

Установка необходимых библиотек

Обновим список репозиториев:

apt update

Установим docker (контейнерная среда) и docker-compose (дополнение к docker для автоматизации действий)

apt install docker docker-compose -y

Если не возникло ошибок, то мы успешно подготовили машину к установке и настройке Minecraft сервера

Настройка docker-compose и настройка YML файла

Рассмотрим файл docker-compose.yml:

{
  "services": {
    "mc": {
      "environment": {
        "EULA": "TRUE",
        "VERSION": "latest",
        "SERVER_PORT": "25565"
      }, 
      "tty": true, 
      "volumes": [
        "./minecraft:/data"
      ], 
      "image": "itzg/minecraft-server", 
      "stdin_open": true, 
      "ports": [
        "25565:25565"
      ], 
      "restart": "unless-stopped"
    }
  }, 
  "version": "3"
}

Рассмотрим необходимые нам строки

Строка:

...
        "EULA": "TRUE",
...

подразумевает, что мы согласны с правилами использования и размещения сервера Minecraft

Строка:

...
        "VERSION": "latest"
...

указывает, какую версию сервера Minecraft использовать, в данном случае использовать последнюю стабильную версию. Можно указать значение "SNAPSHOT", в таком случае будет использоваться версия последнего снапшота. Можно вручную указать нужную нам версию Minecraft, например: "1.12.2".

Строки:

...
      "ports": [
        "25565:25665"
      ],
...

включают Port mapping с контейнера на основную машину. Значение перед «:» является портом в основной машине, его можно изменить например на 1234, в таком случае, подключаться к серверу нужно будет: IP:1234. Значение после «:» является портом, который необходимо пробросить из контейнера Docker, это же значение является переменной «SERVER_PORT»

Строка:

...
        "MEMORY": "1G"
...

указывает, какое количество оперативной памяти выделить для сервера

Сохраним настроенный/приведенный файл в домашнюю директорию пользователя с названием docker-compose.yml

Запуск и управление Docker контейнером

Запуск контейнера

Перейдем в домашнюю директорию пользователя:

cd ~/

Для запуска контейнера в фоновом режиме введем:

docker-compose up -d

В случае если запуск происходит впервые, начнётся установка сервера в ./minecraft

Управление контейнером

Наблюдать за процессом создания сервера можно подключившись к контейнеру (там же и есть консоль):

docker attach $(docker ps -q)

После завершения установки сервера сообщится:

[Server thread/INFO]: Done (337.541s)! For help, type "help"]

В случае если в течении 10 секунд ничего не вывелось, нажмите Enter в консоли, если вы увидите:

[Server thread/INFO]: Unknown or incomplete command, see below for error

то сервер в контейнере уже настроен.

Для сворачивания консоли необходимо нажать комбинацию Ctrl-P, а затем Ctrl-Q

Настройка файрвола

Необходимо разрешить использование порта, проброшенного в основную машину (настраивался в Настройка YML файла). По стандарту применяется порт 25565, поэтому рассмотрим команду с ним:

ufw allow 25565

В случае успеха получим ответ:

Rules updated
Rules updated (v6)

Это означает что мы успешно настроили файрвол и можем играть на настроенном сервере Minecraft

Для подключения к серверу в поле «Адрес сервера» если порт остался неизменным, то вводится IP адрес машины


Большинство параметров возможно изменить в ~/minecraft/server.properties

Больше документации возможно получить на Github


Место для завершительной речи