Im Folgenden startet ein Grundstock -dedizierter Server, der eine Standardversion ausführt und den Standard -UDP -Port ausgesetzt ist:
docker run -d -it -e EULA=TRUE -p 19132:19132/udp -v mc-bedrock-data:/data itzg/minecraft-bedrock-server
HINWEIS : Wenn Sie einen Server für längere Zeit ausführen möchten, wird dies dringend empfohlen, wenn Sie eine Verwaltungsschicht wie Docker Compose oder Kubernetes verwenden, um eine inkrementelle Rekonfiguration und Bildaufrüstung zu ermöglichen.
Mit der VERSION
auf "neuest", der Standardeinstellung, kann der Grundgesteinserver durch Neustart des Containers aktualisiert werden. Bei jedem Start überprüft der Container bei Bedarf die neueste Version und Upgrades.
Die neueste Vorschau -Version kann angefordert werden, indem VERSION
auf "Vorschau" festgelegt wird.
Für Minecraft Java Edition müssen Sie dieses Bild stattdessen verwenden:
ITZG/Minecraft-Server
EULA
(kein Standard): Muss auf TRUE
festgelegt werden, um die Minecraft -Endbenutzer -Lizenzvereinbarung zu akzeptierenVERSION
(Standard ist LATEST
): Kann auf eine bestimmte Serverversion eingestellt werden oder die folgenden speziellen Werte können verwendet werden:LATEST
: Ermittelt die neueste (nicht prävanische) Version und kann zum automatischen Upgrade des Containerstarts verwendet werdenPREVIEW
: Ermittelt die neueste Vorschau-Version und wird automatisch hochgradiertPREVIEW
auf "true" festUID
(Standardableitungen von /data
-Eigentümer): Kann auf eine bestimmte Benutzer -ID eingestellt werdenGID
(Standardableitungen von /data
-Eigentümer): Kann auf eine bestimmte Gruppen -ID eingestellt werden, um den Grundgesteinserverprozess auszuführenTZ
(ohne Standard): Kann auf eine bestimmte Zeitzone wie America/New_York
eingestellt werden. Dadurch wird die Zeitzone für den Docker -Container und damit deren Protokolle festgelegt. Wenn Sie die Zeit mit dem Host synchronisieren möchten, können Sie die Datei /etc/localtime
vom Host in den Container wie /etc/localtime:/etc/localtime:ro
.PACKAGE_BACKUP_KEEP
( 2
): Wie viele Paketsicherungen zu halten In den folgenden Umgebungsvariablen wird die äquivalente Eigenschaft in server.properties
festgelegt, wo jeder hier beschrieben wird. Normalerweise wird jede Eigenschaft stattdessen vom upper_snake_case -Äquivalent konfiguriert.
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
Zum Beispiel, um einen flachen, kreativen Server anstelle der Standardeinsatz zu konfigurieren:
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
festgelegt. Der IPv6 -Port ist standardmäßig nicht ausgesetzt. Beachten Sie , dass Sie bei der Freilegung des Ports wie -p 19132:19132/udp
/udp
müssen. /data
: Der Ort, an dem der heruntergeladene Server erweitert und ausgeführt wird. Enthält auch den server.properties
der Konfigurationseigenschaften.Properties Sie können ein named volume
erstellen und es verwenden wie:
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
Wenn Sie ein benanntes Volumen verwenden und möchten, dass der Grundgesteinsprozess als Nicht-Root-Benutzer ausgeführt wird, müssen Sie die Lautstärke voraberstellen und an den gewünschten Benutzer chown
.
Wenn Sie beispielsweise möchten, dass der Grundgesteinserver mit der Benutzer -ID 1000 und der Gruppen -ID 1000 ausgeführt wird, erstellen und korrigieren Sie die Lautstärke mit dem Namen "Bedrock" mit:
docker run --rm -v bedrock:/data alpine chown 1000:1000 /data
Wenn Sie docker run
verwenden, verweisen Sie einfach auf das Volumen "Grundgestein" im Argument -v
. Wenn Sie eine Komponierungsdatei verwenden, deklarieren Sie das Volumen als extern mit dieser Art von Deklaration:
volumes :
bedrock :
external :
name : bedrock
Wenn Sie den Container auf Ihrem LAN ausführen, finden Sie den dedizierten Server im "LAN Games" -Teil der Registerkarte "Friends", wie z. B.:
Der bequeme Server benötigt die Definition von Berechtigungen mit Xuids. Es gibt verschiedene Tools, die diese online nachschlagen, und sie werden auch auf das Protokoll gedruckt, wenn sich ein Spieler anschließt. Es gibt 3 Ebenen von Berechtigungen und 3 Optionen, um jede Gruppe zu konfigurieren:
OPS
wird verwendet, um Operatoren auf dem Server zu definieren. -e OPS= " 1234567890,0987654321 "
MEMBERS
werden verwendet, um die Mitglieder auf dem Server zu definieren. -e MEMBERS= " 1234567890,0987654321 "
VISITORS
werden verwendet, um Besucher auf dem Server zu definieren. -e VISITORS= " 1234567890,0987654321 "
Es gibt zwei Möglichkeiten, um mit einem Whitelisten umzugehen:
Die erste besteht darin, die Variable der ALLOW_LIST
Umgebung auf true zu setzen und in einer deglist.json-Datei (zuvor als "whitelist.json" bekannt), das in den Container benutzerdefiniert ist.
Das andere besteht darin, die Variable der ALLOW_LIST_USERS
-Umgebungsvariable auf eine von Kommas getrennte Liste von Gamer-Tag-Benutzernamen und ihren entsprechenden Xuids zu setzen. Jeder Benutzername sollte von seinem Xuid folgen, der durch einen Dickdarm getrennt ist. Der Server verwendet diese Details, um dem Player zu entsprechen.
Es gibt verschiedene Tools, die Xuids online nachsehen und sie werden auch zum Protokoll gedruckt, wenn ein Spieler den Server angeschlossen wird.
-e ALLOW_LIST_USERS= " player1:1234567890,player2:0987654321 "
Auch als Verhaltens- oder Ressourcenpakete bezeichnet, können Sie diese Schritte befolgen, um Mods in Ihren Server hinzuzufügen, mit OPS (One Player Sleep) und BedrocktWeaks getestet werden
C:UsersUSERAppDataLocalPackagesMicrosoft.MinecraftUWP_*LocalStategamescom.mojang
.Wenn Sie diese ohne Verwendung eines Clients installieren möchten, sollten Sie die Mods direkt in das Volumen des Servers entpacken können. Sowohl .Mcaddon als auch .McPack werden tatsächlich in In.zip -Dateien umbenannt.
worlds/$level-name/world_behavior_packs.json
, Sie müssen einen Eintrag für jeden Mod hinzufügen Kommas und doppelte Zitate mit [].Sie können auch eine
worlds/$level-name/world_resource_packs.json
erstellen, aber ich habe gesehen
[
{
"pack_id" : "5f51f7b7-85dc-44da-a3ef-a48d8414e4d5",
"version" : [ 3, 0, 0 ]
}
]
Wenn Sie das Ressourcenpaket auf alle Clients zwingen möchten, gibt es eine Option,
texturepack-required=false
inserver.properties
intrue
geändert werden sollte. Ressourcenpakete können gelöscht werden, indem Sie in Einstellungen> Speicher> zwischengespeicherte Daten, dann das Paket auswählen und auf die Mülldose klicken.
Für weitere Informationen hat Foxynotail ein Video durchgeführt, das das Gleiche auf einem Server unter Windows erläutert.
Weitere Informationen zum Verwalten von gestrottenden Servern im Allgemeinen finden Sie in diesem Reddit -Beitrag.
Dieses Bild wird mit einem Skript namens send-command
gebündelt, das einen Grundgesteinsbefehl und ein Argument an die Bedrockserverkonsole sendet. Die Ausgabe des Befehls ist nur in den Containerprotokollen sichtbar.
Zum Beispiel:
docker exec CONTAINER_NAME_OR_ID send-command gamerule dofiretick false
Alternativ werden mit aktiviertem Stdin und TTY (wie der Verwendung -it
) mit dem Namen oder seiner ID an die Konsole des Containers angeschlossen.
docker attach CONTAINER_NAME_OR_ID
Während Sie beigefügt sind, können Sie alle serverseitigen Befehle ausführen, z.
gamerule dofiretick false
Wenn Sie fertig sind, lösen Sie sich von der Serverkonsole mit STRL-P, Strg-Q
Das Beispielverzeichnis enthält eine Beispiel -Docker -Komponierungsdatei, die deklariert:
/data
angeschlossen ist services :
bds :
image : itzg/minecraft-bedrock-server
environment :
EULA : " TRUE "
ports :
- " 19132:19132/udp "
volumes :
- ./data:/data
stdin_open : true
tty : true
Starten Sie den Server und laufen Sie im Hintergrund mit:
docker compose up -d
Sie können die Protokolle jederzeit mit folgender Zeit befolgen:
docker compose logs -f
Das Beispiel -Verzeichnis enthält eine Beispielkubernetes -Manifestdatei, die deklariert:
Die POD -Bereitstellung enthält einige Beispiele für die Konfiguration der Servereigenschaften über Umgebungsvariablen:
env :
- name : EULA
value : " TRUE "
- name : GAMEMODE
value : survival
- name : DIFFICULTY
value : normal
Die Datei ist für die meisten Cluster bereitgestellt, ist jedoch auf Docker für Desktop und Google Kubernetes Engine bestätigt:
kubectl apply -f examples/kubernetes.yml
Sie können die Protokolle der Bereitstellung mithilfe von: folgen:
kubectl logs -f deployment/bds
@Thetinkerdad bietet ein hervorragendes Tutorial zum Hosting mehrerer Instanzen in einem einzigen Port (19132), damit es auffindbar ist: https://www.youtube.com/watch?v=ds0_eszjbfs
Wenn Sie versuchen, dieses Docker -Bild zu erstellen, stellen Sie sicher, dass alle
.sh
-Dateien ein Ende der Zeilensequenz vonLF
nichtCLRF
haben oder der Build fehlschlägt.