Руководство: как запустить Minecraft локально в Docker и предоставить доступ друзьям через Tuna

Эта инструкция подойдёт для любой платформы Windows, Linux, macOS. Разве что Windows нужна не ниже 10.

Руководство: как запустить Minecraft локально в Docker и предоставить доступ друзьям через TunaСгенерированно AI

Подготовка системы

Мы будем запускать minecraft-server (java edition) в docker, так как это удобно, кроссплатформенно, из коробки имеет автозапуск и прочие плюсы. Перед началом я рекомендую установить текстовый редактор для последующей правки yaml файлов например Notepad++ или sublime-text.

Windows

Если у вас Windows, потребуется установить дополнительные компоненты:

Для установки WSL требуется Windows 10 version 2004 и старше, откройте PowerShell от имени администратора и выполните:

wsl —install

С Docker Desktop чуть проще, скачиваете установщик с сайта и устанавливаете как обычную программу

Затем перезагрузите компютер.

macOS

Тут нужно устновить только Docker

docs.docker.comInstall Docker Desktop on MacInstall Docker for Mac to get started. This guide covers system requirements, where to download, and instructions on how to install and update.

Linux

Установите Docker, быстрая установка в Linux:

bash <(curl -sSL https://get.docker.com/)

Регистрация в Tuna

Зарегистрируйтесь на tuna.am эта утилита нужна чтобы открыть доступ к игре из вашей локальной сети в мир.

tuna.amTuna | Туннели в локальную сетьТуннели в локальную сеть, без VPN, публичного IP и проброса портов. Аналог ngrok в России.

Для начала надо купить подписку, так как TCP порты доступны только по подписке, идём в нужный раздел и покупаем за 299 рублей:

покупка подпискипокупка подписки

Теперь нужно зарезервировать статичный TCP порт. Переходим на нужную вкладку и нажимаем Добавить

добавление портадобавление порта

Вводим алиас (название) для порта который резервируем, например minecraft:

добавление портадобавление порта

Готово, порт зарезервирован, вы можете увидеть хост и порт, по которому чуть позже можно будет подключаться:

адрес подключенияадрес подключения

Подготовка к запуску

Создайте отдельный каталог, например minecraft на рабочем столе, в каталоге создайте файл docker-compose.yml и откройте его с помощью Notepad++ или sublime-text.

Вставьте в файл следкующий код:

version: «3.8»

services:
minecraft:
container_name: minecraft-server
image: itzg/minecraft-server:latest
ports:
— «25565:25565»
environment:
EULA: «TRUE»
MEMORY: 2G
volumes:
— minecraft-data:/data
restart: unless-stopped

tuna:
container_name: minecraft-tuna
image: yuccastream/tuna:latest
command: tcp —port=minecraft minecraft:25565
restart: always
depends_on:
— minecraft
environment:
— TUNA_TOKEN=<ваш_токен>

volumes:
minecraft-data:

Замените переменную <ваш_токен> на токен из личного кабинета tuna

токентокен

Запуск

Теперь всё готово и можно запускать сервер.

В случае Windows откройте PowerShell, в macOS/Linux терминал и перейдите в каталог который вы ранее создали, в моём случае в Linux это выглядит так:

cd ~/minecraft

вот пример для Windows, если вы создали каталог minecraft на рабочем столе:

cd $env:USERPROFILE\Desktop\minecraft

Теперь запустите сервисы:

docker compose up -d

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

[+] Running 4/4
✔ Network minecraft_default Created 0.2s
✔ Volume «minecraft_minecraft-data» Created 0.0s
✔ Container minecraft-server Started 0.9s
✔ Container minecraft-tuna Started

Всё работает!

Перейдите на вкладку туннели, и убедитесь, что туннель подключился.

активный туннельактивный туннель

Собственно на этом всё, локально вы можете подключаться к серверу по адресу localhost:25565, а друзьям дайте ссылку вида ru.tuna.am:34741 (только ваш адрес, тут я привёл пример).

Остановка и удаление

Если вам нужно остановаить сервер выполните команду

docker compose down

Чтобы удалить все данные, добавьте ключ -v

docker compose down -v

На этом у меня всё, спасибо что дочитали до конца 🙂

Контакты

Если возникли вопросы по работе tuna, можете задать их по почте info@tuna.am, тут в коментариях или нашем чате в telegram.

 

Источник

Читайте также