Следующее запускает посвященный серверу, работающий по версии по умолчанию и выявляя порт UDP по умолчанию:
docker run -d -it -e EULA=TRUE -p 19132:19132/udp -v mc-bedrock-data:/data itzg/minecraft-bedrock-server
Примечание . Если вы планируете запустить сервер в течение более длительного времени, он настоятельно рекомендуется с использованием уровня управления, такого как Docker Compose или Kubernetes, чтобы обеспечить дополнительную реконфигурацию и обновления изображений.
С переменной VERSION
установлена «Последняя», которая является по умолчанию, то сервер Bedrock может быть обновлен путем перезапуска контейнера. При каждом стартапе контейнер проверяет последнюю версию и обновления, если это необходимо.
Последняя версия предварительного просмотра может быть запрошена путем установки VERSION
для «Предварительного просмотра».
Для Minecraft Java Edition вам нужно использовать это изображение вместо этого:
ITZG/Minecraft-Server
EULA
(без дефолта): должна быть установлена в TRUE
, чтобы принять лицензионное соглашение Minecraft End пользователяVERSION
(по умолчанию является LATEST
): может быть установлена на определенную версию сервера, или можно использовать следующие специальные значения:LATEST
: определяет последнюю версию (не подсказки) и может использоваться для автоматического обновления при запуске контейнеровPREVIEW
: определяет последнюю версию предварительного просмотра и будет автоматически обновлятьPREVIEW
«true»UID
(по умолчанию, полученное от владельца /data
): может быть установлен на конкретный идентификатор пользователя для запуска процесса сервера BedrockGID
(по умолчанию, полученное от /data
): может быть установлен на конкретный идентификатор группы для запуска процесса сервера BedrockTZ
(без по умолчанию): может быть установлен на определенную часовую зону, такую как America/New_York
. Это установит часовой пояс для контейнера Docker и, следовательно, их журналов. Кроме того, если вы хотите синхронизировать время с хостом, вы можете установить файл /etc/localtime
от хоста в контейнер, такой как /etc/localtime:/etc/localtime:ro
.PACKAGE_BACKUP_KEEP
( 2
): сколько резервных копий упаковки следует сохранить Следующие переменные среды установит эквивалентное свойство на server.properties
, где каждый описан здесь. Как правило, каждое свойство настроено вместо этого эквивалентом opper_snake_case.
SERVER_NAME
GAMEMODE
FORCE_GAMEMODE
DIFFICULTY
ALLOW_CHEATS
MAX_PLAYERS
ONLINE_MODE
WHITE_LIST
ALLOW_LIST
SERVER_PORT
SERVER_PORT_V6
ENABLE_LAN_VISIBILITY
VIEW_DISTANCE
TICK_DISTANCE
PLAYER_IDLE_TIMEOUT
MAX_THREADS
LEVEL_NAME
LEVEL_SEED
LEVEL_TYPE
DEFAULT_PLAYER_PERMISSION_LEVEL
TEXTUREPACK_REQUIRED
CONTENT_LOG_FILE_ENABLED
CONTENT_LOG_LEVEL
CONTENT_LOG_CONSOLE_OUTPUT_ENABLED
COMPRESSION_THRESHOLD
COMPRESSION_ALGORITHM
SERVER_AUTHORITATIVE_MOVEMENT
PLAYER_POSITION_ACCEPTANCE_THRESHOLD
PLAYER_MOVEMENT_SCORE_THRESHOLD
PLAYER_MOVEMENT_ACTION_DIRECTION_THRESHOLD
PLAYER_MOVEMENT_DISTANCE_THRESHOLD
PLAYER_MOVEMENT_DURATION_THRESHOLD_IN_MS
CORRECT_PLAYER_MOVEMENT
SERVER_AUTHORITATIVE_BLOCK_BREAKING
SERVER_AUTHORITATIVE_BLOCK_BREAKING_PICK_RANGE_SCALAR
CHAT_RESTRICTION
DISABLE_PLAYER_INTERACTION
CLIENT_SIDE_CHUNK_GENERATION_ENABLED
BLOCK_NETWORK_IDS_ARE_HASHES
DISABLE_PERSONA
DISABLE_CUSTOM_SKINS
SERVER_BUILD_RADIUS_RATIO
ALLOW_OUTBOUND_SCRIPT_DEBUGGING
ALLOW_INBOUND_SCRIPT_DEBUGGING
FORCE_INBOUND_DEBUG_PORT
SCRIPT_DEBUGGER_AUTO_ATTACH
SCRIPT_DEBUGGER_AUTO_ATTACH_CONNECT_ADDRESS
SCRIPT_WATCHDOG_ENABLE
SCRIPT_WATCHDOG_ENABLE_EXCEPTION_HANDLING
SCRIPT_WATCHDOG_ENABLE_SHUTDOWN
SCRIPT_WATCHDOG_HANG_EXCEPTION
SCRIPT_WATCHDOG_HANG_THRESHOLD
SCRIPT_WATCHDOG_SPIKE_THRESHOLD
SCRIPT_WATCHDOG_SLOW_THRESHOLD
SCRIPT_WATCHDOG_MEMORY_WARNING
SCRIPT_WATCHDOG_MEMORY_LIMIT
OP_PERMISSION_LEVEL
EMIT_SERVER_TELEMETRY
MSA_GAMERTAGS_ONLY
ITEM_TRANSACTION_LOGGING_ENABLED
Например, для настройки плоского креативного сервера вместо использования по умолчанию:
docker run -d -it --name bds-flat-creative
-e EULA=TRUE -e LEVEL_TYPE=flat -e GAMEMODE=creative
-p 19132:19132/udp itzg/minecraft-bedrock-server
SERVER_PORT
. Порт IPv6 не выявляется по умолчанию. Обратите внимание , что вы должны добавить /udp
при выявлении порта, например, -p 19132:19132/udp
, и IPv4 и IPv6 должны быть включены на вашем хост -машине. /data
: местоположение, где загруженный сервер расширен и запускается. Также содержит файловый server.properties
Вы можете создать named volume
и использовать его как:
docker volume create mc-volume
docker run -d -it --name mc-server -e EULA=TRUE -p 19132:19132/udp -v mc-volume:/data itzg/minecraft-bedrock-server
Если вы используете именованный объем и хотите, чтобы процесс Bendrock был запущен в качестве пользователя, не являющегося корнями, вам нужно будет предварительно создать громкость и chown
его для желаемого пользователя.
Например, если вы хотите, чтобы сервер Bendrock работал с идентификатором пользователя 1000 и ID Group Id 1000, затем создайте и разыграл громкость с именем «Bedrock», используя:
docker run --rm -v bedrock:/data alpine chown 1000:1000 /data
При использовании docker run
, просто обратите внимание на этот объем «коренной породы» в аргументе -v
. При использовании файла Compose объявите объем как внешний, используя этот тип объявления:
volumes :
bedrock :
external :
name : bedrock
При запуске контейнера на вашей локальной сети вы можете найти и подключиться к специальному серверу в вкладке «LAN Games», например:
Серверный сервер, посвященный коренной породе, требует определения разрешений с помощью Xuids. Существуют различные инструменты, чтобы искать их онлайн, и они также напечатаны в журнале, когда игрок присоединяется. Существует 3 уровня разрешений и 3 параметра для настройки каждой группы:
OPS
используется для определения операторов на сервере. -e OPS= " 1234567890,0987654321 "
MEMBERS
используются для определения участников на сервере. -e MEMBERS= " 1234567890,0987654321 "
VISITORS
используются для определения посетителей на сервере. -e VISITORS= " 1234567890,0987654321 "
Есть два способа обработки белого списка:
Первый-установить переменную среды ALLOW_LIST
на true и map в файле Allistlist.json (ранее известный как «Whitelist.json»), который предназначен для контейнера.
Другое состоит в том, чтобы установить переменную среды ALLOW_LIST_USERS
в список пользователей, разделенных запятыми, и их соответствующие Xuids. Каждое имя пользователя следует следовать за его XUID, разделенным толстой кишкой. Сервер будет использовать эти детали, чтобы соответствовать игроку.
Существуют различные инструменты, которые можно найти в Интернете, и они также напечатаны в журнале, когда игрок присоединяется к серверу.
-e ALLOW_LIST_USERS= " player1:1234567890,player2:0987654321 "
Также известные как поведенческие или ресурсные пакеты, чтобы добавить моды на свой сервер, вы можете выполнить эти шаги, протестированные с помощью OPS (один игрок со сном) и BedRockTweaks
C:UsersUSERAppDataLocalPackagesMicrosoft.MinecraftUWP_*LocalStategamescom.mojang
.Если вы хотите установить их без использования клиента, вы должны иметь возможность разкапливать моды непосредственно в томе сервера, .mcaddon должен перейти в Behavior_packs и .mcpack в resource_packs. Оба .mcaddon и .mcpack фактически переименованы в файлы .zip.
worlds/$level-name/world_behavior_packs.json
, вам нужно добавить запись для каждого мода, как на предыдущем manifest.json, нам нужен только Uuid, который теперь называется pack_id, и версия, заменяющая точки на точки Запятые и двойные цитаты с [].Вы также можете создать
worlds/$level-name/world_resource_packs.json
но я видел, что размещение как ресурсов, так и поведения пакетов внутри одного и того же JSON работает просто хорошо
[
{
"pack_id" : "5f51f7b7-85dc-44da-a3ef-a48d8414e4d5",
"version" : [ 3, 0, 0 ]
}
]
Если вы хотите навязать пакет ресурсов для всех клиентов, есть опция
texturepack-required=false
true
server.properties
. Пакеты ресурсов могут быть удалены, перейдя в настройки> Хранение> Кэшированные данные, затем выбрав пакет и нажав на мусорную банку.
Для получения дополнительной информации Foxynotail снял видео, объясняющее то же самое на сервере, работающем на Windows.
Для получения дополнительной информации об управлении специальными серверами Bedrock в целом ознакомьтесь с этим постом Reddit.
Это изображение поставляется в комплекте с помощью скрипта под названием send-command
, который отправит команду Bedrock и аргумент в консоли сервера Bedrock. Вывод команды был вид только в журналах контейнеров.
Например:
docker exec CONTAINER_NAME_OR_ID send-command gamerule dofiretick false
В качестве альтернативы, с помощью STDIN и TTY включены (например, использование -it
), прикрепите к консоли контейнера по его названию или идентификатору, используя:
docker attach CONTAINER_NAME_OR_ID
При подключении вы можете выполнить любые команды на стороне сервера, такие как выпивание вашего игрока, чтобы быть администратором:
gamerule dofiretick false
Когда закончите, отсоедините от консоли сервера с помощью Ctrl-P, Ctrl-Q
Справочник примеров содержит пример Docker Compose File, который объявляет:
/data
контейнера services :
bds :
image : itzg/minecraft-bedrock-server
environment :
EULA : " TRUE "
ports :
- " 19132:19132/udp "
volumes :
- ./data:/data
stdin_open : true
tty : true
Запустите сервер и запустите в фоновом режиме, используя:
docker compose up -d
Вы можете следовать журналам в любое время, используя:
docker compose logs -f
Справочник примеров содержит пример манифестного файла Kubernetes, который заявляет:
Развертывание POD включает в себя некоторые примеры настройки свойств сервера через переменные среды:
env :
- name : EULA
value : " TRUE "
- name : GAMEMODE
value : survival
- name : DIFFICULTY
value : normal
Файл развернут как есть в большинстве кластеров, но был подтвержден на Docker для Desktop и Google Kubernetes Engine:
kubectl apply -f examples/kubernetes.yml
Вы можете следовать журналам развертывания, используя:
kubectl logs -f deployment/bds
@ThetInkerDad предоставляет отличный учебник о том, как размещать несколько экземпляров на одном порту (19132), чтобы он был обнаружен: https://www.youtube.com/watch?v=ds0_eszjbfs
При попытке создать это изображение Docker, убедитесь, что все файлы
.sh
имеют конец линейной последовательностиLF
а неCLRF
, или сборка не удастся.