/ докер-майнкрафт-сервер

Этот образ докера предоставляет сервер Minecraft, который автоматически загружает последнюю стабильную версию при запуске. Вы также можете запустить/обновить до любой конкретной версии или самого последнего снимка. См. Раздел Версии ниже для получения дополнительной информации.

Чтобы просто использовать последнюю стабильную версию, запустите

   docker run -d -p 25565: 25565 --name mc -e EULA = TRUE itzg/minecraft-server  

где стандартный порт сервера 25565 будет доступен на вашем хосте машина.

Если вы хотите обслуживать несколько серверов Minecraft или просто использовать альтернативный порт, измените сопоставление портов на стороне хоста, например

   docker run -p 25566: 25565 ...  

будет обслуживать ваш сервер Minecraft через порт 25566 вашего хоста, поскольку синтаксис -p имеет вид host-port : container-port .

Говоря о нескольких серверах, удобно давать вашим контейнерам явные имена, используя - имя , например

  docker run -d -p 25565: 25565 --name mc itzg/minecraft-server  

С его помощью вы можете легко просматривать журналы, останавливать или повторно запускать контейнер:

  docker logs -f mc (Ctrl-C для выхода  вот  gs action) docker stop mcdocker start mc  

Обязательно всегда включайте -e EULA = TRUE в свои команды, как Mojang/Microsoft требует принятия лицензионного соглашения.

Содержание
  1. Ищете выделенный сервер Bedrock
  2. Взаимодействие с сервером
  3. Поддержка лицензионного соглашения
  4. Конфигурация часового пояса
  5. Присоединение каталога данных к файловой системе хоста
  6. Версии
  7. Запуск сервера Minecraft на другой версии Java
  8. Healthcheck
  9. Автопауза
  10. Описание
  11. Включение автопаузы
  12. Шаблоны и примеры развертывания
  13. Таблицы Helm
  14. Примеры
  15. Развертывание Amazon Web Services (AWS)
  16. Запуск Forge Server
  17. Использование тома/data
  18. Использование отдельных креплений
  19. Замена переменных внутри конфигураций
  20. Запуск сервера Bukkit/Spigot
  21. Запуск сервера Paper
  22. Запуск сервера Tuinity
  23. Запуск сервера Magma
  24. Запуск Mohist сервер
  25. Запуск сервера типа Catserver
  26. Запуск сервера с модпаком Feed the Beast
  27. Переменные среды:
  28. Обновление
  29. Пример
  30. Запуск сервера с модпаком CurseForge
  31. Каталог данных модпака
  32. Скрипты запуска с ошибками
  33. Исправление «невозможно запустить forgemodloader»
  34. Запуск Сервер SpongeVanilla
  35. Запуск Fabric Server
  36. Использование тома/data
  37. Использование отдельных монтировок
  38. Развертывание подключаемых модулей с подключенного тома
  39. Запуск с пользовательским JAR сервера
  40. Принудительная повторная загрузка файла сервера
  41. Использование Docker Compose
  42. Конфигурация сервера
  43. Имя сервера
  44. Server port
  45. Сложность
  46. Добавить игроков в белый список
  47. Игроки-операторы/администраторы
  48. Значок сервера
  49. Rcon
  50. Query
  51. Максимальное количество игроков
  52. Максимальный размер мира
  53. Allow Nether
  54. Объявление достижений игроков
  55. Включить командный блок
  56. Force Gamemode
  57. Generate Structures
  58. Hardcore
  59. Snooper
  60. Макс. высота застройки
  61. Максимальное время тика
  62. Spawn Animals
  63. Spawn Monsters
  64. Создавать NPC
  65. Установить защиту от появления
  66. Расстояние просмотра
  67. Семя уровня
  68. Игровой режим
  69. Сообщение дня
  70. Режим PVP
  71. Тип уровня и настройки генератора
  72. Пользовательский пакет ресурсов сервера
  73. World Save Name
  74. Загружаемый мир
  75. Клонирование мира из путь к контейнеру
  76. Перезаписывать мир при запуске
  77. Загружаемый пакет модов/плагинов для серверов Forge, Bukkit и Spigot
  78. Удалить старые моды/плагины
  79. Сетевой режим
  80. Разрешить полет
  81. Сопоставления других свойств сервера
  82. Разное Параметры
  83. Запуск от имени альтернативного идентификатора пользователя/группы
  84. Ограничение памяти
  85. Параметры JVM
  86. Включить удаленный JMX для профилирования
  87. Enable Флаги Айкара
  88. HTTP-прокси
  89. Использование Параметр «noconsole»
  90. Явное отключение GUI
  91. Stop Duration
  92. Запуск на RaspberryPi

Ищете выделенный сервер Bedrock

Для клиентов Minecraft, работающих на консолях, мобильных устройствах или в ОС Windows, вы: Вместо этого мне нужно будет использовать это изображение:

itzg/minecraft-bedrock-server

Взаимодействие с сервером

RCON включен по умолчанию , поэтому вы можете exec в контейнер для доступа к консоли сервера Minecraft:

  docker exec -i mc rcon-cli  

Примечание: -i требуется для интерактивного использования rcon-cli.

Для запуска простой однократной команды , например, остановка сервера Minecraft, передайте команду в качестве аргументов rcon-cli , например:

  docker exec mc rcon-cli stop   

-i в этом случае не требуется.

Чтобы прикрепить и взаимодействовать с w с сервером Minecraft добавьте -it при запуске контейнера, например

  docker run -d -it -p 25565: 25565 -  -name mc itzg/minecraft-server  

С ним вы можете подключаться и взаимодействовать в любое время с помощью

  docker attach mc  

, а затем Control-p Control-q для отсоединить .

Для удаленного доступа настройте демон Docker на используйте сокет tcp (например, -H tcp://0.0.0. 0: 2375 ) и прикрепите с другого компьютера:

  docker -H $ HOST: 2375 attach mc  

Если вы не находитесь в домашней/частной локальной сети, вам следует включить доступ TLS.

Поддержка лицензионного соглашения

Теперь Mojang требует принятия лицензионного соглашения с конечным пользователем Minecraft. Чтобы принять, добавьте

  -e EULA = TRUE  

, например

  docker run -d -it -e EULA = TRUE -p 25565: 25565 --name mc itzg/minecraft-server  

Конфигурация часового пояса

Вы можете настроить часовой пояс в соответствии с вашим, установив переменную среды TZ :

  -e TZ = Europe/London  

, например:

  docker run -d -it -e TZ = Europe/London -p 25565: 25565 --name mc itzg/minecraft  -server  

Или монтирование /etc/timezone только для чтения (не поддерживается в Windows):

  -v/etc/timezone:/etc/timezone: ro  

, например:

  docker run -d  -it -v/etc/timezone:/etc/timezone: ro -p 25565: 25565 --name mc itzg/minecraft-server  

Присоединение каталога данных к файловой системе хоста

Для быстрого доступа к данным Minecraft используйте аргумент -v , чтобы сопоставить каталог на вашем хост-компьютере с /data , например:

  docker run -d -v/path/on/host:/data ...  

При таком подключении вы можете остановить сервер, отредактировать конфигурацию под прикрепленным /path/on/host и снова запустить сервер с помощью docker start CONTAINER_ID , чтобы получить новую конфигурацию.

Например, используя Docker compose, создайте следующий docker-compose.yml в его собственный каталог, и контейнер автоматически создаст/присоединит относительный каталог data к контейнеру:

 version: "3" services: mc:  image: itzg/minecraft-server ports: - 25565: 25565 environment: EULA: "TRUE" volume: # прикрепите относительный каталог 'data' к пути/пути контейнера ./data:/data 

Версии

Чтобы использовать другую версию Minecraft, передайте переменную среды VERSION , которая может иметь значение

  • ПОСЛЕДНИЙ (по умолчанию)
  • SNAPSHOT
  • или конкретная версия, такая как «1.7.9»

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

  docker run -  d -e VERSION = SNAPSHOT ...  

или конкретная версия:

  docker run -d -e VERSION = 1.7  .9 ...  

При использовании «LATEST» или «SNAPSHOT» обновление можно выполнить, просто перезапустив контейнер. Во время следующего запуска, если более новая версия доступна с соответствующий канал выпуска, затем загружается и используется новый файл jar сервера. ПРИМЕЧАНИЕ: со временем вы можете увидеть, что более старые версии серверного jar-файла остаются в каталоге /data . Это безопасно удалить.

Запуск сервера Minecraft на другой версии Java

Чтобы использовать другую версию Java, используйте тег docker для запуска сервера Minecraft.

Имя тега Описание Linux
latest По умолчанию . Использует Java версии 8 Alpine Linux
java8 Использует Java 8 для совместимости с модом Forge Alpine Linux
accept15 Использует версию Java 15 от AdoptOpenJDK Alpine Linux
accept14 Использует версию Java 14 от AdoptOpenJDK Alpine Linux
accept13 Использует версию Java 13 от AdoptOpenJDK Alpine Linux
accept11 Использует версию Java 11 из AdoptOpenJDK Alpine Linux
openj9 Использует Eclipse OpenJ9 JVM Alpine Linux
openj9-11 Использует Eclipse OpenJ9 JVM для Java 11 Alpine Linux
openj9-nightly Использует тестовые сборки Eclipse OpenJ9 JVM Alpine Linux
multiarch Использует последнее обновление Java версии 8 Debian Linux
multiarch-latest Использует версию Java последнее обновление ion 15 Debian Linux

Например, чтобы использовать версию Java 13:

  docker run --name mc itzg/minecraft-server: accept13  

Имейте в виду, что некоторые версии сервера Minecraft не могут работать на новейшие версии Java. Кроме того, FORGE не поддерживает реализацию JVM openj9.

Healthcheck

Это изображение содержит mc-monitor и использует его команду status для постоянно проверяйте контейнер. Это можно увидеть из столбца STATUS в docker ps

  ИДЕНТИФИКАТОР КОНТЕЙНЕРА ИДЕНТИФИКАЦИЯ ИЗОБРАЖЕНИЯ КОМАНДА СОЗДАНА ИМЕНА ПОРТОВ СОСТОЯНИЯb418af073764  mc "/start" 43 секунды назад Up 41 секунда (работоспособность) 0.0.0.0:25565->25565/tcp, 25575/tcp mc  

Вы также можете запросить состояние контейнера в удобный для скриптов способ:

 > docker container inspect -f "{{.State.Health.Status}}" mchealthy  

Некоторые системы оркестрации, такие как Portainer, не позволяют отключать значение по умолчанию HEALTHCHECK , объявленное этим изображением. В этих случаях вы можете приблизить отключение проверок работоспособности, установив для переменной среды DISABLE_HEALTHCHECK значение true .

Автопауза

Описание

В Mojang есть различные отчеты об ошибках, связанные с высокой загрузкой ЦП на серверах с более новыми версиями, даже с несколькими подключенными клиентами или без них (например, этот, на самом деле функциональность на основе этого комментария в потоке).

К этому изображению была добавлена ​​функция автопаузы, чтобы отслеживать, подключены ли клиенты к серверу. Если в течение указанного времени клиент не подключен, процесс Java останавливается. При постукивании по порту сервера (например, при просмотре игрового многопользовательского сервера) процесс возобновляется. Опыт для клиента не меняется.

Конечно, даже загруженные блоки не отмечаются, когда процесс останавливается.

С точки зрения сервера, пауза приводит к тому, что процесс занимает один тик, пока процесс остановлен, поэтому сторожевой таймер сервера может вмешаться после продолжения процесса, возможно, принудительно перезапустив контейнер. Чтобы предотвратить это, убедитесь, что max-tick-time в файле server.properties установлен правильно. Версии, отличные от ванильных, могут иметь свой собственный файл конфигурации, возможно, вам придется отдельно отключить их сторожевые таймеры (например, PAPER-серверы).

При запуске файл server.properties проверяется и, если применимо, выводится предупреждение на терминал. Когда сервер создается (в постоянном каталоге нет данных), создается файл свойств с отключенным Watchdog.

Утилита, используемая для пробуждения сервера ( knock (d ) ) работает на уровне сетевого интерфейса. Таким образом, правильный интерфейс должен быть установлен с помощью переменной AUTOPAUSE_KNOCK_INTERFACE при использовании нестандартных сетевых сред (например, хост-сеть, Portainer или решения NAS). См. Описание переменной ниже.

Начальный пример файла компоновки предоставлен в examples/docker-compose-autopause.yml.

Включение автопаузы

Включите функцию автопаузы, установив:

  -e ENABLE_AUTOPAUSE = TRUE  

Следующие переменные среды определить поведение автоматической паузы:

  • AUTOPAUSE_TIMEOUT_EST , по умолчанию 3600 (секунды) описывает время между последним отключением клиента и приостановкой процесса (считывается установленным тайм-аутом)
  • AUTOPAUSE_TIMEOUT_INIT , по умолчанию 600 (секунд ) описывает время между запуском сервера и приостановкой процесса, когда клиент не подключается между ними (считывается как инициализированный тайм-аут)
  • AUTOPAUSE_TIMEOUT_KN , по умолчанию 120 (секунд) описывает время между блокировкой порта (например, пингом в главном меню) и приостановкой процесса, когда клиент не подключается cts inbetween (читается как сбитый тайм-аут)
  • AUTOPAUSE_PERIOD , по умолчанию 10 (секунд) описывает период демонизированного конечного автомата, который обрабатывает приостановку процесса (возобновление выполняется независимо)
  • AUTOPAUSE_KNOCK_INTERFACE , по умолчанию eth0
    Описывает интерфейс передан демону knockd . Если интерфейс по умолчанию не работает, запустите команду ifconfig внутри контейнера и получите интерфейс, получающий входящее соединение из его вывода. Переданный интерфейс должен существовать внутри контейнера. Использование интерфейса обратной связи ( lo ), скорее всего, не даст желаемых результатов.

Шаблоны и примеры развертывания

Таблицы Helm

  • stable/minecraft (источник диаграммы)
  • mcsh/server-deployment

Примеры

В каталоге примеров также представлены примеры развертывания образа Docker itzg/minecraft-server.

Развертывание Amazon Web Services (AWS)

Если вы ищете простой способ развернуть это в облаке Amazon Web Services, посмотрите репозиторий Minecraft Server Deployment (CloudFormation). Этот репозиторий содержит шаблон CloudFormation, который позволит вам начать работу в AWS за считанные минуты. При желании он использует спотовую цену, поэтому сервер очень дешевый, и вы можете легко отключить его, когда он не используется.

Запуск Forge Server

Включить режим Forge-сервера добавив -e TYPE = FORGE в вашу командную строку.

Общая версия определяется VERSION , как описано в разделе выше, и по умолчанию будет запускаться рекомендованная версия Forge. Вы также можете запустить конкретную версию Forge с помощью FORGEVERSION , например -e FORGEVERSION = 14.23.5.2854 .

   $ docker run -d -v/path/on/host:/data  -e TYPE = FORGE  -e VERSION = 1.12.2 -e FORGEVERSION = 14.23.5.2854  -p 25565: 25565 -e  EULA = TRUE --name mc itzg/minecraft-server  

Чтобы использовать предварительно загруженный установщик Forge, поместите его в прикрепленный /data каталог и укажите имя файла установщика с помощью FORGE_INSTALLER , например:

  $ docker run -d -v/path/on/host  :/data ...  -e FORGE_INSTALLER = forge-1.11.2-13.20.0.2228-installer.jar ...  

Чтобы загрузить установщик Forge из произвольного расположения, например, ваш собственный репозиторий файлов, укажите URL-адрес с помощью FORGE_INSTALLER_URL , например:

  $ docker run -d -v/path/on/ host:/data ...  -e FORGE_INSTALLER_URL = http://HOST/forge-1.11.2-13.20.0.2228-installer.jar ...  

В обоих дела выше, переменные VERSION или FORGEVERSION не требуются.

Для добавления модов у вас есть два варианта .

Использование тома/data

Это самый простой способ, если вы используете постоянное монтирование /data .

Для этого вам нужно будет прикрепить каталог /data контейнера (см. «Присоединение каталога данных к файловой системе хоста»). Затем вы можете добавить моды в /path/on/host/mods , которую вы выбрали. В приведенном выше примере содержимое папки /path/on/host выглядит так:

 /path/on/host├── mods  │ └── ... УСТАНОВИТЕ МОДЫ ЗДЕСЬ ... ├── config│ └── ... НАСТРОЙТЕ МОДЫ ЗДЕСЬ ... ├── ops.json├── server.properties├── whitelist.json├─  ─ миры│ └── ... РАЗМЕСТИТЬ КАРТЫ В СОБСТВЕННЫХ ПАПКАХ ЗДЕСЬ ... └── ...  

Предоставление постоянного монтирования /data — хорошая идея, как для сохранения игрового мира, так и для обеспечения ручной настройки, которая иногда требуется .

Например, представьте сценарий, когда начальный запуск завершен, но теперь вы хотите изменить карту мира для своего сервера.

Предполагая, что у вас есть общий каталог в свой контейнер, вы можете затем (после первого запуска) перетащить свои готовые карты или миры в каталог worlds . Примечание: каждый мир должен быть помещен в отдельную папку в каталоге worlds .

Когда ваши карты будут в правильный путь, затем вы можете указать, какую карту использует сервер, изменив значение level-name в server.properties в соответствии с именем вашей карты.

Если вы добавляете моды или вносите изменения в server.properties во время работы контейнера, вам нужно будет перезапустить его, чтобы получить их:

  docker stop mcdocker start mc  

Использование отдельных креплений

Это самый простой способ, если вы используете эфемерная файловая система /data или загрузка мира с помощью параметра WORLD .

Есть два дополнительных тома, которые можно смонтировать ; /mods и /config . Любые файлы в любой из этих файловых систем будут скопированы в основную файловую систему /data . перед запуском Minecraft. Если вы хотите, чтобы старые моды удалялись по мере обновления содержимого /mods , добавьте -e REMOVE_OLD_MODS = TRUE . Если вы используете дистрибутив BUKKIT , это повлияет на все файлы в каталоге plugins/. Вы можете точно настроить процесс удаления, указав переменные REMOVE_OLD_MODS_INCLUDE и REMOVE_OLD_MODS_EXCLUDE . По умолчанию все будет удалено. Вы также можете указать переменную REMOVE_OLD_MODS_DEPTH (по умолчанию 16), чтобы удалять файлы только до определенного уровня.

Например: -e REMOVE_OLD_MODS = TRUE -e REMOVE_OLD_MODS_INCLUDE = "*. jar" -e REMOVE_OLD_MODS_DEPTH = 1 удалит все старые файлы jar, которые находятся непосредственно внутри плагинов / или mods/ directory.

Это хорошо работает, если вы хотите иметь общий набор модулей в отдельном месте, но при этом иметь несколько миров с разными требованиями к серверу в либо постоянные тома, либо загружаемый архив.

Вы можете указать место назначения конфигураций, которые находятся внутри монтирования /config , установив Переменная COPY_CONFIG_DEST . По умолчанию конфигурации рекурсивно копируются в каталог /data/config . Если файл был обновлен непосредственно в директории /data/* и новее, чем файл в монтировании /config/* , он не будет переопределен..

Например: -v ./config:/config -e COPY_CONFIG_DEST =/data позволит вам скопировать ваш bukkit.yml и так далее прямо в каталог сервера.

Замена переменных внутри конфигураций

Иногда у вас есть моды или плагины которые требуют информации о конфигурации, которая доступна только во время выполнения. Например, если вам нужно настроить плагин для подключения к базе данных, вы не хотите включать эту информацию в свой репозиторий Git или образ Docker. Или, может быть, у вас есть некоторая информация о времени выполнения. например, имя сервера, которое должно быть установлено в ваших файлах конфигурации после запуска контейнера.

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

Если вы установите для переменной среды REPLACE_ENV_VARIABLES значение TRUE , сценарий запуска будет проходить через все файлы внутри вашего /data volume и r замените переменные, соответствующие вашим определенным переменным среды. Переменные, которые вы хотите заменить, необходимо заключить в фигурные скобки $ {YOUR_VARIABLE} и поставить перед ними знак доллара. Это обычный синтаксис для переменных окружения внутри строк или файлов конфигурации.

При желании вы также можете определить префикс для соответствия только предопределенным переменным среды.

ENV_VARIABLE_PREFIX = "CFG_"

Если вы хотите использовать файл для значения (например, при использовании секретов), вы можете добавить суффикс _FILE к имени вашей переменной (в команде запуска).

Существуют некоторые ограничения на то, какие символы вы можете использовать.

Тип Разрешенные символы
Имя 0-9a-zA-Z_-
Значение 0-9a-zA-Z _-:/=?. +

Переменные будут заменены в файлы со следующими расширениями: .yml , .yaml , .txt , .cfg , .conf , .properties .

Определенные файлы можно исключить, указав их имена (без пути) в th e переменная REPLACE_ENV_VARIABLES_EXCLUDES .

Пути можно исключить, указав их в переменной REPLACE_ENV_VARIABLES_EXCLUDE_PATHS . Pathexcludes рекурсивны. Вот пример:

  REPLACE_ENV_VARIABLES_EXCLUDE_PATHS = "/data/plugins/Essentials/userdata/data/plugins/MyPlugin"  

Вот полный пример, в котором мы хотим заменить значения внутри database.yml .

 --- database: host: $ {CFG_DB_HOST  } name: $ {CFG_DB_NAME} пароль: $ {CFG_DB_PASSWORD} 

Вот как ваш docker-compose. yml может выглядеть так:

 version: "3" # Другие примеры docker-compose в/examplesservices: minecraft: image: itzg/порты minecraft-server:  - тома "25565: 25565": - среда "mc:/data": EULA: "TRUE" ENABLE_RCON: "true" RCON_PASSWORD: "testing" RCON_PORT: 28016 # включить замену переменной env REPLACE_ENV_VARIABLES: "TRUE" # определить необязательный префикс  для ваших переменных env вы хотите заменить ENV_VARIABLE_PREFIX: "CFG_" # и вот фактические переменные CFG_DB_HOST: "http://localhost: 3306" CFG_DB_NAME: "minecraft" CFG_DB_PASSWORD_FILE: "/run/secrets/db_password" restart: always rcon  : image: itzg/rcon порты: - "4326: 4326" - "4327: 4327" тома: - тома "rcon:/opt/rcon-web-admin/db": mc: rcon: secrets: db_password: file:. /db_password 

Содержимое db_password :

  ug23u3bg39o-ogADS   

Запуск сервера Bukkit/Spigot

Включите режим сервера Bukkit/Spigot, добавив -e TYPE = BUKKIT или -e TYPE = SPIGOT в вашу командную строку.

  docker run -d -v/path/on/host:/ data  -e TYPE = SPIGOT  -p 25565: 25565 -e EULA = TRUE --name mc itzg/minecraft-server  

Если вы размещаете свою собственную копию Bukkit/ Spigot, вы можете переопределить URL-адреса загрузки с помощью:

  • -e BUKKIT_DOWNLOAD_URL =
  • -e SPIGOT_DOWNLOAD_URL =

Вы можете создать кран из исходного кода, добавив -e BUILD_FROM_SOURCE = true

Если вы прикрепили каталог хоста к /data , то вы можете установить плагины в подкаталоге plugins . Вы также можете прикрепить том /plugins . Если вы добавляете плагины во время работы контейнера, вам необходимо перезапустить его, чтобы подобрать их.

Запуск сервера Paper

Включите режим сервера Paper, добавив a -e TYPE = PAPER в командную строку.

По умолчанию контейнер будет запускать последнюю сборку сервера Paper, но вы также можете выбрать запуск определенной построить с помощью -e PAPERBUILD = 205 .

  docker run -d -v/path/on/host:/data  -e TYPE  = PAPER  -p 25565: 25565 -e EULA = TRUE --name mc itzg/minecraft-server  

Если вы размещаете свою собственную копию Paper, вы можете переопределить URL для загрузки с помощью:

  • -e PAPER_DOWNLOAD_URL =

Пример файла для компоновки предоставляется atexamples/docker-compose-paper.yml.

Если вы прикрепили каталог хоста к тому /data , то вы можете установить плагины через подкаталог plugins . Вы также можете прикрепить том /plugins . Если вы добавляете плагины во время работы контейнера, вам необходимо перезапустить его, чтобы подобрать их.

Запуск сервера Tuinity

Сервер Tuinity, который является форк Paper, направленный на повышение производительности сервера при большом количестве игроков.

  -e TYPE = TUINITY  

ПРИМЕЧАНИЕ только VERSION = LATEST поддерживается

Запуск сервера Magma

Сервер Magma, который представляет собой комбинацию Forge и PaperMC , можно использовать с

  -e TYPE = MAGMA  

ПРИМЕЧАНИЕ поддерживаются ограниченные базовые версии, поэтому вам также необходимо установить VERSION , например «1.12.2»

Запуск Mohist сервер

Сервер Mohist можно использовать с

  -e TYPE = MOHIST  

ПРИМЕЧАНИЕ , поддерживаются ограниченные базовые версии, поэтому вам также потребуется установить VERSION , например «1.12.2»

Запуск сервера типа Catserver

Сервер типа Catserver можно использовать с

  -e TYPE = CATSERVER   

ПРИМЕЧАНИЕ. Catserver предоставляет только один поток выпуска m, поэтому VERSION игнорируется

Запуск сервера с модпаком Feed the Beast

NOTE требуется itzg/minecraft-server: multiarch image

Пакеты модов приложения Feed the Beast поддерживаются с помощью -e TYPE = FTBA ( обратите внимание на букву «A» в конце типа). Этот тип сервера автоматически позаботится о загрузке и установке пакета модов и соответствующей версии Forge, поэтому VERSION указывать не нужно.

Переменные среды:

  • FTB_MODPACK_ID : требуется , числовой идентификатор устанавливаемого пакета модов. Идентификатор можно найти, найдя модпак и используя «ID», отображаемый рядом с именем.
  • FTB_MODPACK_VERSION_ID : необязательно, числовой идентификатор версии для установки . Если не указано, будет установлена ​​последняя версия. «Идентификатор версии» можно получить, углубившись во вкладку «Версии» и щелкнув конкретную версию.

Обновление

Если конкретный FTB_MODPACK_VERSION_ID не был указан, просто перезапустите контейнер, чтобы получить самую новую версию модпака. Если используется конкретный идентификатор версии, воссоздайте контейнер с новым идентификатором версии.

Пример

В следующем примере выполняется последняя версия FTB Presents Direwolf20 1.12:

  docker run -d --name mc-ftb -e EULA = TRUE  -e TYPE = FTBA -e FTB_MODPACK_ID = 31  -p 25565: 25565  itzg/minecraft-server  : multiarch  

Обычно вы также добавляете -v объем для /data , поскольку моды и конфигурация устанавливаются там вместе с данными мира.

Запуск сервера с модпаком CurseForge

Включите этот режим сервера, добавив -e TYPE = CURSEFORGE в командную строку, но обратите внимание на следующие дополнительные шаги..

Вам необходимо указать пакет модов для запуска с помощью переменной среды CF_SERVER_MOD . Пакет модов сервера CurseForge доступен вместе с соответствующим модпаком клиента по адресу https://www.curseforge.com/minecraft/modpacks.

Теперь вы можете добавить -e CF_SERVER_MOD = name_of_modpack .zip в командную строку.

  docker run -d -v/path/on/host:/data -e TYPE = CURSEFORGE  -e CF_SERVER_MOD  = SkyFactory_4_Server_4.1.0.zip  -p 25565: 25565 -e EULA = TRUE --name mc itzg/minecraft-server  

Если вы хотите хранить предварительно загружаемые пакеты модов отдельно из вашего каталога данных, затем вы можете присоединить другой том по выбранному вами пути и ссылаться на него. В следующем примере в качестве пути к контейнеру в качестве области предварительной загрузки используется /modpacks :

  docker run -d -v/path/on/host:/data -v/path/to/modpacks:/modpacks  -e TYPE = CURSEFORGE  -e CF_SERVER_MOD =/modpacks /SkyFactory_4_Server_4.1.0.zip  -p 25565: 25565 -e EULA = TRUE --name mc itzg/minecraft-server  

Каталог данных модпака

По умолчанию CurseForge m odpacks разворачиваются в подкаталог /data/FeedTheBeast и выполняются оттуда. (Местоположение по умолчанию было выбрано по устаревшим причинам, когда Curse и FTB поддерживались вместе.)

Каталог можно изменить, установив CF_BASE_DIR , например -e CF_BASE_DIR =/data .

Скрипты запуска с ошибками

В некоторых модпаках есть ошибочные или слишком сложные скрипты запуска. Вы можете избежать использования связанного сценария запуска и использовать стандартную логику запуска сервера этого образа, добавив -e USE_MODPACK_START_SCRIPT = false .

Исправление «невозможно запустить forgemodloader»

Если модпак вашего сервера не загружается с такой ошибкой:

  невозможно запустить forgemodloader  

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

  -e FTB_LEGACYJAVAFIXER = true  

Запуск Сервер SpongeVanilla

Включите режим сервера SpongeVanilla, добавив -e TYPE = SPONGEVANILLA в вашу командную строку. По умолчанию контейнер будет запускать последний СТАБИЛЬНАЯ версия. Если вы хотите запустить определенную версию, вы можете добавить -e SPONGEVERSION = 1.11.2-6.1.0-BETA-19 в свою командную строку.

  docker run -d -v/path/on/host:/data -e TYPE = SPONGEVANILLA  -p 25565: 25565 -e EULA = TRUE --name mc itzg /minecraft-server  

Вы также можете выбрать используйте ветку EXPERIMENTAL . Просто измените ее с помощью SPONGEBRANCH , например:

  $ docker run -  d -v/path/on/host:/data ...  -e TYPE = SPONGEVANILLA -e SPONGEBRANCH = EXPERIMENTAL ...  

Запуск Fabric Server

Включите режим сервера Fabric, добавив -e TYPE = FABRIC в командную строку. По умолчанию в контейнере будет запущена последняя версия, но вы также можете выбрать запуск определенной версии с VERSION .

  docker run -  d -v/path/on/host:/data  -e TYPE = FABRIC  -p 25565: 25565 -e EULA = TRUE --name mc itzg/minecraft-server  

Определенную версию установщика можно запросить с помощью FABRIC_INSTALLER_VERSION .

Чтобы использовать предварительно загруженный установщик Fabric, поместите его в каталог, прикрепленный к контейнеру, например том /data и укажите имя файла установщика с помощью FABRIC_INSTALLER , например:

   docker run -d -v/path/on/host:/data ...  -e FABRIC_INSTALLER = fabric-installer-0.5.0.32.jar ...  

Для загрузки установщик Fabric из настраиваемого места, такого как ваш собственный репозиторий файлов, укажите URL-адрес с помощью FABRIC_INSTALLER_URL , например:

  docker run -  d -v/путь/на/host:/data ...  -e FABRIC_INSTALLER_URL = http://HOST/fabr  ic-installer-0.5.0.32.jar ...  

Для добавления модов у вас есть два варианта:

Использование тома/data

Это самый простой способ, если вы используете постоянное монтирование /data .

Для этого вам нужно будет прикрепите каталог /data контейнера (см. «Присоединение каталога данных к файловой системе хоста»). Затем вы можете добавить моды в /path/on/host/mods код> выбранная вами папка. В приведенном выше примере содержимое папки /path/on/host выглядит так:

 /path/on/host├── mods  │ └── ... УСТАНОВИТЕ МОДЫ ЗДЕСЬ ... ├── config│ └── ... НАСТРОЙТЕ МОДЫ ЗДЕСЬ ... ├── ops.json├── server.properties├── whitelist.json└─  ─ ...  

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

  docker stop mcdocker start mc  

Использование отдельных монтировок

Это самый простой способ, если вы используете эфемерный /data или загрузив мир с помощью параметра WORLD .

Есть два дополнительных тома, которые можно смонтировать; /mods и /config . Любые файлы в любой из этих файловых систем будут скопированы в основную файловую систему /data . перед запуском Minecraft.

Это хорошо работает, если вы хотите иметь общий набор модулей в отдельном месте, но при этом иметь несколько миров с разными требованиями к серверу либо в постоянных томах, либо в загружаемом архиве.

Развертывание подключаемых модулей с подключенного тома

Есть один дополнительный том, который можно смонтировать; /plugins . Любые файлы в этой файловой системе будут скопированы в основную файловую систему /data/plugins перед запуском Minecraft. Установите PLUGINS_SYNC_UPDATE = false , если вы хотите, чтобы файлы из /plugins имели приоритет над более новыми файлами в /data/plugins .

Это хорошо работает, если вы хотите иметь общий набор плагинов в отдельном месте, но при этом иметь несколько миров с разными требованиями к серверу либо в постоянных томах, либо в загружаемом архиве.

Запуск с пользовательским JAR сервера

Если вы хотите запустить пользовательский JAR сервера, установите -e TYPE = CUSTOM и передайте пользовательский serverJAR через CUSTOM_SERVER . Это может быть URL-адрес или путь контейнера к существующему файлу JAR.

Если это URL-адрес, он будет загружен только в каталог /data если это еще не было. Например, если вам нужно обновить или повторно загрузить JAR, вам нужно будет остановить контейнер, удалить файл из каталога /data контейнера и начать заново.

Принудительная повторная загрузка файла сервера

Для типов серверов VANILLA, FORGE, BUKKIT, SPIGOT, PAPER, CURSEFORGE, SPONGEVANILLA установите $ FORCE_REDOWNLOAD к некоторому значению (например, «истина»), чтобы принудительно повторно загрузить файл сервера для определенного типа сервера. добавив -e FORCE_REDOWNLOAD = true в вашу командную строку.

Например, с PaperSpigot это будет выглядеть примерно так:

  docker run -d -v/path/on/host:/data  -e TYPE = PAPER -e FORCE_REDOWNLOAD = true  -p 25565: 25565 -e EULA = TRUE --name mc  itzg/minecraft-server  

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

Вместо того, чтобы вводить параметры сервера ниже, сопоставления портов выше и т. д. каждый раз, когда вы хотите создать новый Сервер Minecraft, теперь вы можете использовать Docker Compose. Начните с файла docker-compose.yml , как показано ниже:

  minecraft-server: ports: - "25565: 25565" environment:  Лицензионное соглашение: "ИСТИНА" изображение: itzg/minecraft-server имя_контейнера: mc tty: true stdin_open: true перезапуск: всегда  

и в том же каталоге, что и запуск этого файла

  docker-compose up -d  

А теперь поиграйте … или настройте раздел environment для настройки этого экземпляра сервера.

Конфигурация сервера

По умолчанию конфигурация сервера будет создана и установлена ​​на основе следующих переменных среды, но только при первом запуске сервера . Если файл server.properties уже существует, значения в нем не будут изменены.

Если вы хотите переопределить конфигурацию сервера каждый раз при запуске контейнера , вы можете установить переменную среды OVERRIDE_SERVER_PROPERTIES, например:

  docker run -d -e OVERRIDE_SERVER_PROPERTIES = true ...  

Это сбросит любую ручную конфигурацию файла server.properties , поэтому, если вы хотите внести какие-либо постоянные изменения конфигурации, вам нужно будет убедиться, что вы правильно установили правильные переменные среды в своей команде запуска докера (описано ниже).

Имя сервера

Имя сервера (например,. для bungeecord) можно задать следующим образом:

  docker run -d -e SERVER_NAME = MyServer ...  

Server port

ВНИМАНИЕ: изменяйте это значение, только если вы знаете, что делаете. Это необходимо только при использовании сети хоста, и сеть хоста должна использоваться редко. Вместо этого используйте -p сопоставление портов.

При необходимости порт сервера можно настроить следующим образом:

   docker run -d -e SERVER_PORT = 25566 ...  

однако обязательно измените сопоставление портов соответствующим образом и будьте готовы к поломке некоторых функций.

Сложность

Уровень сложности (по умолчанию: easy ) может быть установлен следующим образом:

  docker run -d -e DIFFICULTY = hard ...  

Допустимые значения: peace , easy , normal и hard , и сообщение об ошибке будет выводиться в журналы, если это не одно этих значений.

Добавить игроков в белый список

Чтобы внести игроков в белый список для вашего сервера Minecraft, передайте имена пользователей Minecraft, разделенные запятыми, через БЕЛЫЙ СПИСОК переменная среды, например

  docker run -d -e WHITELIST = user1, user2 ...  

Если WHITELIST переменная среды не является используется, любой пользователь может присоединиться к вашему серверу Minecraft, если он общедоступен.

ПРИМЕЧАНИЕ. Когда используется WHITELIST , свойство сервера белый список автоматически получит значение true.

По умолчанию игроки в WHITELIST добавляются в окончательный файл whitelist.json сервером Minecraft. Если вы установите для OVERRIDE_WHITELIST значение «true», то файл whitelist.json будет воссоздаваться при каждом запуске сервера.

Игроки-операторы/администраторы

Чтобы добавить на свой сервер Minecraft дополнительных пользователей «op» (также известных как администраторы), передайте имена пользователей Minecraft, разделенные запятыми, через OPS переменная среды, например

  docker run -d -e OPS = user1, user2 ...  

По умолчанию игроки в OPS добавляются в последний файл ops.json сервером Minecraft. Если вы установите для OVERRIDE_OPS значение «true», то файл ops.json будет воссоздаваться при каждом запуске сервера.

Значок сервера

Значок сервера можно настроить с помощью переменной ICON . Изображение будет автоматически загружено, масштабировано и преобразовано из любого другого формата изображения:

  docker run -d -e ICON = http://..../some/image  .png ...  

Установленный значок сервера не заменяется по умолчанию. Его можно изменить и переопределить, установив для OVERRIDE_ICON значение TRUE ..

  docker run -d -e ICON = http://..../some/other/image.png -e OVERRIDE_ICON = TRUE ...   

Rcon

Чтобы использовать rcon, используйте переменные ENABLE_RCON и RCON_PASSORD . По умолчанию rcon порт будет иметь вид 25575 , но его можно легко изменить с помощью переменной RCON_PORT .

  docker run -d  -e ENABLE_RCON = true -e RCON_PASSWORD = testing  

Query

Включение этого параметра включит протокол запросов gamespy. По умолчанию порт запроса будет 25565 (UDP), но его можно легко изменить с помощью переменной QUERY_PORT .

  docker run -d -  e ENABLE_QUERY = true  

Максимальное количество игроков

По умолчанию максимальное количество игроков равно 20, вы можете увеличить это с помощью кода MAX_PLAYERS > переменная.

  docker run -d -e MAX_PLAYERS = 50  

Максимальный размер мира

Это устанавливает максимально возможный размер в блоках, выраженный как радиус, который d граница может быть получена.

  docker run -d -e MAX_WORLD_SIZE = 10000  

Allow Nether

Позволяет игрокам путешествовать в Пустоту.

  docker run -d -e ALLOW_NETHER = true  

Объявление достижений игроков

Разрешает серверу сообщать, когда игрок получает достижение.

  docker run -d -e ANNOUNCE_PLAYER_ACHIEVEMENTS = true  

Включить командный блок

Включает командные блоки

  docker run -d -e ENABLE_COMMAND_BLOCK = true  

Force Gamemode

Заставить игроков присоединяться в игровом режиме по умолчанию.

  • false — Игроки будут присоединиться в игровом режиме, в котором они оставили.

  • true — игроки всегда будут присоединяться в игровом режиме по умолчанию.

    docker run -d -e FORCE_GAMEMODE = false

Generate Structures

Определяет, могут ли структуры (например, деревни) будет сгенерировано.

  • false — Структуры не будут генерироваться оценивается в новых блоках.

  • true — структуры будут созданы в новых блоках.

    docker run - d -e GENERATE_STRUCTURES = true

Hardcore

Если установлено значение true, игроки будут переведены в режим наблюдателя, если они умирают.

  docker run -d -e HARDCORE = false  

Snooper

Если установлено значение false, сервер не будет отправлять данные на сервер snoop.minecraft.net.

  docker run -d -e SNOOPER_ENABLED = false  

Макс. высота застройки

Максимальная высота, на которой разрешено строительство. Ландшафт может естественным образом превышать нижний предел высоты.

   docker run -d -e MAX_BUILD_HEIGHT = 256  

Максимальное время тика

Максимальное количество миллисекунд, которое может пройти один тик, прежде чем сторожевой таймер сервера остановит сервер с сообщением, Один тик сервера занял 60,00 секунд (максимум 0,05); Считая его разбитым, сервер будет принудительно отключен. Как только это условие выполнено, он вызывает System.exit (1). Установка этого значения на -1 полностью отключит сторожевой таймер

  docker run -d -e MAX_TICK_TIME = 60000  

Spawn Animals

Определяет, смогут ли животные появляться.

  docker run -d -e  SPAWN_ANIMALS = true  

Spawn Monsters

Определяет, будут ли появляться монстры.

  docker run  -d -e SPAWN_MONSTERS = true  

Создавать NPC

Определяет, будут ли появляться жители деревни.

  docker run -d -e SPAWN_NPCS = true  

Установить защиту от появления

Устанавливает область, которую не могут редактировать не операторы (0, чтобы отключить )

  docker run -d -e SPAWN_PROTECTION = 0  

Расстояние просмотра

Устанавливает количество мировых данных, которые сервер отправляет клиенту, измеряется порциями в каждом направлении игрока (радиус, а не диаметр). Он определяет расстояние просмотра на стороне сервера.

  docker  запустить -d -e VIEW_DISTANCE = 10   

Семя уровня

Если вы хотите создать уровень Майнкрафт с определенным семенем, используйте SEED , например

  docker run -d -e SEED = 1785852800490497919 ...  

Игровой режим

По умолчанию Серверы Minecraft настроены для работы в режиме выживания. Вы можете изменить режим с помощью MODE , где вы можете указать стандартные числовые значения или значения быстрого доступа:

  • creative
  • выживание
  • приключение
  • зритель (только для Minecraft 1.8 или новее)

Например:

  docker run -d -e MODE = creative ...  

Сообщение дня

Сообщение дня, показанное под каждой записью сервера в пользовательском интерфейсе, можно изменить с помощью переменной среды MOTD , например

  docker run -  d -e 'MOTD = My Server' ...  

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

  Сервер Minecraft Paper на базе Docker  

, когда TYPE — это PAPER . Таким образом, вы можете легко различать несколько серверов, которые вы, возможно, запустили.

В этом примере показано, как указать серверное сообщение дня, содержащее пробелы, заключив все это в кавычки.

Режим PVP

По умолчанию серверы создаются с включенным режимом player-vs-player (PVP). Вы можете отключить это, установив для переменной среды PVP значение false , например

  docker run -  d -e PVP = false ...  

Тип уровня и настройки генератора

По умолчанию стандартный мир создается с холмами, долинами, водой и т.д. Можно настроить другой тип уровня, установив для LEVEL_TYPE ожидаемый тип, например

  • DEFAULT
  • ПЛОСКИЙ
  • БОЛЬШИЕ РАЗМЕРЫ
  • УСИЛЕННЫЙ
  • НАСТРАИВАЕМЫЙ
  • БУФЕТ
  • БИОМЕСОП (Biomes O ‘Plenty for 1. 12 и старше)
  • BIOMESOPLENTY (Biomes O ‘Plenty для 1.15 и выше)

Описания доступны в игре.

При использовании типа уровня FLAT , CUSTOMIZED и BUFFET вы можете дополнительно настроить генератор мира передача пользовательских настроек генератора. Поскольку в настройках генератора обычно есть;, заключите значение -e в одинарную кавычку, как показано ниже.

Например ( только биты -e ):

  -e LEVEL_TYPE = flat -e 'GENERATOR_SETTINGS = 3; minecraft: bedrock, 3 * minecraft:  камень, 52 * minecraft: sandstone; 2; ' 

Пользовательский пакет ресурсов сервера

Вы можете установить ссылку на пользовательский пакет ресурсов и установить ее контрольная сумма с использованием параметров RESOURCE_PACK и RESOURCE_PACK_SHA1 соответственно, по умолчанию пусто:

  docker run -d  -e 'RESOURCE_PACK = http ://link.com/to/pack.zip?  = 1' -e 'RESOURCE_PACK_SHA1 = d5db29cd03a2ed0550  86cef9c31c252b4587d6d0 ' 

ПРИМЕЧАНИЕ. : и = должны быть экранированы используя . Контрольная сумма в виде открытого текста в шестнадцатеричном формате.

World Save Name

Вы можете переключаться между сохранениями мира или запускать несколько контейнеров с разными сохранениями, используя Параметр УРОВЕНЬ , где по умолчанию — «мир»:

  docker run -d -e LEVEL = Bonus ...  

ПРИМЕЧАНИЕ: если запущено несколько контейнеров, обязательно укажите разные -v каталог хоста для каждого LEVEL используется или не используйте -v , и файловая система контейнера сохранит инкапсуляцию.

Загружаемый мир

Вместо монтируя том /data , вы можете вместо этого указать URL-адрес ZIP-файла, содержащего заархивированный мир. Будет произведен поиск файла level.dat , и содержащий его подкаталог будет перемещен в каталог с именем $ LEVEL . Это означает, что большая часть заархивированных миров Minecraft, загружаемых из Интернета, уже будет в правильном формате.

  docker run -d -e WORLD = http://www.example  .com/worlds/MySave.zip ...  

ПРИМЕЧАНИЕ. Этот URL-адрес должен быть доступен изнутри контейнера. Следовательно, вы должны использовать IP-адрес или глобально разрешаемое полное доменное имя или имя связанного контейнера.

ПРИМЕЧАНИЕ. Если архив содержит более одного level.dat , затем можно выбрать тот, который нужно выбрать, с помощью WORLD_INDEX , который по умолчанию равен 1.

Клонирование мира из путь к контейнеру

Параметр WORLD также может использоваться для ссылки на каталог или zip-файл, который будет использоваться в качестве источника для клонирования или распаковки мирового каталога.

Например, следующее будет изначально клонировать мировой контент из /worlds/basic . Также обратите внимание, что в этом примере вы можете использовать прикрепление тома только для электронной почты, чтобы гарантировать, что исходный код клона остается нетронутым.

  docker run ... -v $ HOME/worlds:/worlds  : ro -e WORLD =/worlds/basic  

Перезаписывать мир при запуске

Мир будет загружен или скопирован, только если он не существует уже. Установите FORCE_WORLD_COPY = TRUE , чтобы принудительно перезаписывать мир при каждом запуске сервера.

Загружаемый пакет модов/плагинов для серверов Forge, Bukkit и Spigot

Подобно параметру WORLD выше, вы можете указать URL-адрес «пакета модов» для загрузки и установки в моды для Forge или plugins для Bukkit/Spigot. Чтобы использовать этот параметр, передайте переменную среды MODPACK , например

  docker run  -d -e MODPACK = http://www.example.com/mods/modpack.zip ...  

ПРИМЕЧАНИЕ. Указанный URL-адрес должен быть zip-файлом с одним или несколькими jar-файлами на верхнем уровне zip-архива. Убедитесь, что jar-файлы совместимы с конкретным TYPE сервера, на котором вы работаете.

Вы также можете загружать отдельные моды, используя MODS переменная среды и указание URL-адресов для файлов jar. Несколько модов/плагинов следует разделять запятыми.

  docker run -d -e MODS = https://www.example.com/mods/mod1.jar,https://www.example.com/mods/mod2.jar ...  

Удалить старые моды/плагины

Если указан указанный выше параметр ( MODPACK ), вы также можете указать скрипту удалить старые моды/плагины перед установкой новых. Такое поведение желательно, если вы хотите обновить моды/плагины из загруженного zip-файла. Чтобы использовать эту опцию, передайте переменную среды REMOVE_OLD_MODS = "TRUE" , например

  docker run -d -e REMOVE_OLD_MODS = "TRUE" -e MODPACK = http://www.example.com/mods/modpack.zip ...  

ВНИМАНИЕ: все содержимое каталога mods или plugins будет удалено перед распаковкой нового содержимого из MODPACK или MODS .

Сетевой режим

По умолчанию сервер проверяет подключающихся игроков по базе данных учетных записей Minecraft. Если вы хотите создать автономный сервер или ваш сервер не подключен к Интернету, вы можете отключить сервер, чтобы попытаться подключиться к minecraft.net для аутентификации игроков с помощью переменной среды ONLINE_MODE , например,

  docker run -d -e ONLINE_MODE = FALSE ...  

Разрешить полет

Разрешает пользователи могут использовать полет на вашем сервере в режиме выживания, если у них установлен мод, обеспечивающий полет.

  -e ALLOW_FLIGHT = TRUE | FALSE  

Сопоставления других свойств сервера

Переменная среды Свойство сервера
PLAYER_IDLE_TIMEOUT player-idle-timeout
BROADCAST_CONSOLE_TO_OPS broadcast-console-to -ops
BROADCAST_RCON_TO_OPS broadcast-rcon-to-ops
ENABLE_JMX enable-jmx-monitoring
SYNC_CHUNK_WRITES sync- chunk-пишет
ENABLE_STATUS enable-status
ENTITY_BROADCAST_RANGE_PERCENTAGE entity-broadcast-range-процент
FUNCTION_PERMISSION_LEVEL функция-разрешение -уровень
NETWORK_COMPRESSION_THRESHOLD сетевой-компрессионный-порог
OP_PERMISSION_LEVEL op-permission-level
PREVENT_PROXY_CONNECTIONS prevent-proxy-connections
USE_NATIVE_TRANSPORT use-native-transport
ENFORCE_WHITELIST enforce-whitelist

Разное Параметры

Запуск от имени альтернативного идентификатора пользователя/группы

По умолчанию контейнер переключится на идентификатор пользователя 1000 и идентификатор группы 1000; однако вы можете переопределить эти значения с помощью установка UID и/или GID в качестве записей среды во время выполнения команды docker run .

  -e UID = 1234-e GID = 1234  

Контейнер также пропустит переключение пользователей, если - user / -u аргумент передается в docker run .

Ограничение памяти

По умолчанию , образ объявляет начальный и максимальный предел кучи памяти Java в 1 ГБ. Есть несколько способов изменить настройки памяти:

  • MEMORY : «1G» по умолчанию, может использоваться для настройки как начальных ( Xms ) и max ( Xmx ) настройки кучи памяти JVM
  • INIT_MEMORY : независимо устанавливает начальный размер кучи.
  • MAX_MEMORY : независимо устанавливает максимальный размер кучи.

Значения всех трех передаются непосредственно в JVM и поддерживают формат/единицы измерения как [g | G | m | M | k | K] . Например:

  -e MEMORY = 2G  

ПРИМЕЧАНИЕ: указанные выше настройки устанавливают только Java куча ограничений. Запросы ресурсов памяти и ограничения для всего контейнера также должны учитывать использование памяти, отличной от кучи. Дополнительные 25% — это общая рекомендация.

Параметры JVM

Общие параметры JVM можно передать при вызове сервера Minecraft, передав JVM_OPTS переменная среды. Такие параметры, как -X , которые необходимы для продолжения общих параметров JVM, могут быть переданы через переменную среды JVM_XX_OPTS .

В некоторых случаях если е. г. после удаления модов может потребоваться запустить minecraft с дополнительным параметром -D , например -Dfml.queryResult = confirm . Чтобы решить эту проблему, вы можете использовать переменную среды JVM_DD_OPTS , которая строит параметры из заданного списка значений, разделенных пробелом, но без префикса -D . Чтобы что-то работало в системе (например, Plesk), которая не допускает = внутри значений, вместо этого можно использовать : (двоеточие). Верхний пример будет выглядеть так: JVM_DD_OPTS = fml.queryResult: confirm и будет преобразован в -Dfml.queryResult = confirm .

Включить удаленный JMX для профилирования

Чтобы включить удаленный JMX, например, для профилирования с помощью VisualVM или JMC, добавьте переменную среды ENABLE_JMX = true и добавьте переадресацию порта TCP 7091, например:

  -e ENABLE_JMX = true -p 7091: 7091  

Enable Флаги Айкара

Айкар проводит некоторые исследования по поиску оптимальных флагов JVM для настройки сборщика мусора, что становится более важным по мере того, как все больше пользователей подключаются одновременно. Задокументированный там набор флагов может быть добавлен с помощью

  -e USE_AIKAR_FLAGS = true  

Когда MEMORY больше или равно 12G, тогда флаги Aikar будут скорректированы в соответствии со статьей.

Поддержка больших страниц также может быть включена путем добавления

   -e USE_LARGE_PAGES = true  

HTTP-прокси

Вы можете настроить использование прокси HTTP/HTTPS, передав URL-адрес прокси. через переменную среды PROXY . В примере файла compose он ссылается на прокси-сервер-компаньон squid, устанавливая эквивалент

  -e PROXY = proxy: 3128  

Использование Параметр «noconsole»

Некоторые старые версии (до 1.14) Spigot требовали передачи - noconsole при отключении stdin, что можно сделать, установив -e CONSOLE = FALSE .

Явное отключение GUI

Некоторые старые серверы сбиваются с толку и думают, что интерфейс GUI включен. Вы можете явно отключить это, передав -e GUI = FALSE .

Stop Duration

Когда контейнер получает сигнал об остановке, Оболочка процесса Minecraft попытается отправить команду «остановить» через RCON или консоль и ждет, пока процесс корректно завершится. По умолчанию он ждет 60 секунд, но эту продолжительность можно настроить, задав для переменной среды STOP_DURATION количество секунд.

Запуск на RaspberryPi

Чтобы запустить это изображение на RaspberryPi 3 B +, 4 или новее, используйте тег изображения

  itzg/minecraft-server: multiarch  

ПРИМЕЧАНИЕ: вам может потребоваться уменьшить выделение памяти, например -e MEMORY = 750m

Оцените статью
Gamicon.ru
Добавить комментарий