Запуск minecraft в podman/docker

Руководство Запуск minecraft в podman/docker

Поддерживаемые версии
  1. 1.8
  2. 1.9
  3. 1.10
  4. 1.11
  5. 1.12
  6. 1.13
  7. 1.14
  8. 1.15
  9. 1.16
  10. 1.17
  11. 1.18
  12. 1.19
podman.png


Немного букафф:


Если вы настоящий dungeon linux user, вам станет в разы удобнее развёртывать свои сервера. За счёт того что подман максимально прост в использовании, а так же имеется в панели cockpit (о которой я писал не так давно тут) возможность отслеживать данные о контейнерах, их использование сводится к простоте и максимальному удобству.

gachi-gachimuchi.gif


Почему зачем и как:

Что docker что podman это одно и то же в своей основе. Это софт для создания и управления контейнерами. Я буду показывать на примере подмана, потому что он мне больше нравится, но почти всё что тут будет показано так же сработает и на докере (кроме запуска pod'ов).

У всех появится резонный вопрос, а зачем нужны контейнеры если можно запустить прям на рабочей тачке?
- Контейнеры это изолированная среда. Доступа к вашей основной хост системе у контейнера как по факту нет, ибо создаётся оболочка, изолированная от всей вашей системы, что даёт безопасность в процессе работы.
- Возможность выставить ограничения потребления железа для конкретных задач, какое-то конкретное количество ядер, озу, и.т.д, всегда нужно иметь такую возможность.
- Простота переезда/обновления, легче удалить контейнер и после пересоздать его, чем перекатывать систему/обновлять пакеты на целевой системе или устанавливать их заново, если бы у нас стояло всё на реальной тачке, а не в контейнерах.
- Быстрота работы, ибо это не виртуальная машина, тут ничего не эмулируется, тут всё запускается на том же железе, что и работает хост система, без всяких проблем.


Установка и запуск:

Если вы пришли из прошлого гайда про cockpit, у вас стоит всё нужное.

- Если нет, устанавливаем:
CentOS, RHEL, Fedora, и прочие производные:
Код:
dnf install podman -y


Debian, Ubuntu и прочие производные:
Код:
apt install podman -y


- Запускаем нашего демона:
Код:
systemctl enable --now podman


- Проверить статус нашего демона можно данной командой:
Код:
systemctl status podman

Если всё исправно, вывод будет такой:
1674666284018.png



Использование:

Всё расписывать я не смогу, ибо подман имеет очень много опций для каждой команды, по этой причине я опишу только самое основное. Если вы хотите изучить больше - офф доки подмана.

- В начале, нам нужно скачать образ openjdk для запуска наших ядер майнкрафта. Делается это данной командой:
Код:
podman pull openjdk:17
Вместо openjdk может быть и debian, и ubuntu, а вместо версии jdk (17) может быть и версия дебиана (debian:11) так же и убунты (ubuntu:22.04), и.т.д. Все образы лежат на серверах докера.

- Проверяем наличие образа:
Код:
podman images
1674669854805.png

Как видим, образ на месте. Можно продолжать.

- Создаём папку в любом удобном нам месте. Я создал по пути /opt/minecraft. Туда мы бросаем наше ядро и всё что нам нужно, либо же можем разделить на подпапки, для прокси сервера, основного сервера и.т.д, дабы всё полностью было изолированно друг от друга. Если вы хотите так сделать, создайте в папке minecraft дочерние папки, с названиями как вы хотите. Допустим main под основной сервер, velocity под прокси, и.т.д. Дабы в итоге получилось так: /opt/minecraft/main и /opt/minecraft/velocity.

- Переходим к самому интересному, создаём контейнер.
Код:
podman run --tty --detach --name main \
    --cpus=1 --memory=2048M --publish 25565:25565 \
    --volume=/opt/minecraft/main:/main:rw,Z \
    openjdk:17 bash

Краткий разбор команды запуска:
podman run - команда для самого запуска контейнера.
--tty - указывает на то что будет использоваться tty для взаимодействия с контейнером.
--detach - отправляет контейнер в фоновую работу.
--name - указывает имя контейнера, в нашем случае это main.
--cpus - ограничение ядер контейнеру от хост железяки.
--memory - ограничение ОЗУ контейнеру от хост железяки.
--publish - указание проброса порта внутрь контейнера. Это позволяет сделать коннект по ip вашей тачки используя порт указанный в этой опции первый_порт:второй_порт. В качестве первого порта указывается порт на вашей реальной тачке, в качестве второго порта указывается порт в контейнере, он будет иметь связь с тем который вы указали в качестве первого.
--volume - квота или папка которая будет примонтирована в контейнер.
Пример: Создайте допустим в вашей хост системе где-то папку, в моём случае это будет по пути /opt/minecraft/main и укажите так же в команде. После двоеточия указывается внутренняя папка куда будет сделано монтирование папки/квоты. т.е --volume=внешняя_папка:внутренняя_папка:параметры_монтирования. В параметры монтирования указывается RW, папка будет примонтирована на чтение и запись, а так же Z, это позволяет шарить папку если у вас в системе работает SELinux как у меня.
openjdk:17 - указание образа, в нашем случае это openjdk 17 версии.
bash - указание оболочки терминала.
Если у вас появятся вопросы, вы всегда можете заглянуть в мануалы подмана, там всё отлично расписано.

- И так, мы создали контейнер, мы молодцы. Нужно проверить его работоспособность:
Код:
podman ps
1674671170633.png

Если вы хотите вывести все контейнеры, даже выключенные, впишите podman ps -a

- Теперь можно к нему подключиться:
Код:
podman attach main
Вместо main (если вы назвали иначе) пишете своё имя контейнера, или его id из поля container id.
1674671428789.png

В моём случае я попал сразу в консоль сервера, ибо был уже запущен сервер, но вы увидите обычный терминал, в котором сможете запустить обычный sh запускатор. В вашем случае будет так:
1674671631377.png

И так, переходите в ту папку которую вы примонтировали, запускаете спокойно свой сервер, и используете. Если вам нужно будет отключиться: ctrl + p и ctrl + q.

- Если вам нужно остановить контейнер:
Код:
podman stop main


- Если вам нужно запустить контейнер:
Код:
podman start main


- Если вам нужно удалить контейнер:
Код:
podman rm main
Привожу во внимание! Ваши папки и волумы что вы смонтировали в контейнер НЕ БУДУТ удалены, они останутся на месте. Вы можете снова создать контейнер, и примонтировать их обратно.

- Управление через WebGUI cockpit:
1674671860888.png

В разделе Podman containers вы можете смотреть за нагрузкой, использовать терминал там, смотреть за логами, остановить, перезапустить контейнер и.т.д. Всё это может значительно ускорить процесс.

Естественно это только простой запуск одного сервера. В будущем я постараюсь дополнить по максиму, и привести в пример подключение к контейнеру базы данных и прочие важные приколдесы.
Автор
Furry__wolf
Просмотры
1 964
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Другие ресурсы пользователя Furry__wolf

Поделиться ресурсом

Назад
Сверху Снизу