ต่อไปนี้เริ่มต้นเซิร์ฟเวอร์เฉพาะของข้อเท็จจริงที่ใช้เวอร์ชันเริ่มต้นและเปิดเผยพอร์ต 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 endVERSION
(ค่าเริ่มต้นคือ LATEST
): สามารถตั้งค่าเป็นเซิร์ฟเวอร์เฉพาะเวอร์ชันเฉพาะหรือสามารถใช้ค่าพิเศษต่อไปนี้ได้:LATEST
: กำหนดเวอร์ชันล่าสุด (ไม่ใช่การตรวจสอบ) และสามารถใช้เพื่ออัปเกรดอัตโนมัติเมื่อเริ่มคอนเทนเนอร์เริ่มต้นPREVIEW
: กำหนดเวอร์ชันตัวอย่างล่าสุดและจะอัปเกรดอัตโนมัติPREVIEW
เป็น "จริง"UID
(เริ่มต้นจาก /data
): สามารถตั้งค่าเป็นรหัสผู้ใช้เฉพาะเพื่อเรียกใช้กระบวนการเซิร์ฟเวอร์ BedrockGID
(เริ่มต้นจาก /data
): สามารถตั้งค่าเป็น ID กลุ่มเฉพาะเพื่อเรียกใช้กระบวนการเซิร์ฟเวอร์ BedrockTZ
(ไม่มีค่าเริ่มต้น): สามารถตั้งค่าเป็นเขตเวลาเฉพาะเช่น America/New_York
สิ่งนี้จะตั้งค่าเขตเวลาสำหรับคอนเทนเนอร์ Docker และดังนั้นบันทึกของพวกเขา หากคุณต้องการซิงค์เวลากับโฮสต์คุณสามารถติดตั้งไฟล์ /etc/localtime
จากโฮสต์ไปยังคอนเทนเนอร์เช่น /etc/localtime:/etc/localtime:ro
PACKAGE_BACKUP_KEEP
( 2
): มีการสำรองข้อมูลแพ็คเกจจำนวนเท่าใด ตัวแปรสภาพแวดล้อมต่อไปนี้จะตั้งค่าคุณสมบัติที่เทียบเท่าใน server.properties
ซึ่งแต่ละอธิบายไว้ที่นี่ โดยทั่วไปแล้วแต่ละคุณสมบัติจะได้รับการกำหนดค่าแทนโดย updual_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
ไฟล์การกำหนดค่า 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
หากคุณใช้ระดับเสียงที่มีชื่อและต้องการกระบวนการของข้อเท็จจริงในการทำงานเป็นผู้ใช้ที่ไม่ใช่รูทคุณจะต้องสร้างระดับเสียงล่วงหน้าและ chown
ให้กับผู้ใช้ที่ต้องการ
ตัวอย่างเช่นหากคุณต้องการให้เซิร์ฟเวอร์ Bedrock ทำงานกับผู้ใช้ ID 1000 และ ID กลุ่ม 1000 จากนั้นสร้างและ chown ระดับเสียงชื่อ "Bedrock" โดยใช้:
docker run --rm -v bedrock:/data alpine chown 1000:1000 /data
หากใช้ docker run
ให้อ้างอิงระดับ "ข้อเท็จจริง" ในอาร์กิวเมนต์ -v
หากใช้ไฟล์ Compose ให้ประกาศปริมาณเป็นภายนอกโดยใช้การประกาศประเภทนี้:
volumes :
bedrock :
external :
name : bedrock
เมื่อเรียกใช้คอนเทนเนอร์บน LAN ของคุณคุณสามารถค้นหาและเชื่อมต่อกับเซิร์ฟเวอร์เฉพาะในส่วน "LAN Games" ของแท็บ "เพื่อน" เช่น:
เซิร์ฟเวอร์เฉพาะข้อเท็จจริงต้องการการอนุญาตที่กำหนดด้วย XUIDS มีเครื่องมือต่าง ๆ ในการค้นหาสิ่งเหล่านี้ออนไลน์และพวกเขายังพิมพ์ไปยังบันทึกเมื่อผู้เล่นเข้าร่วม มี 3 ระดับของการอนุญาตและ 3 ตัวเลือกในการกำหนดค่าแต่ละกลุ่ม:
OPS
ใช้เพื่อกำหนดตัวดำเนินการบนเซิร์ฟเวอร์ -e OPS= " 1234567890,0987654321 "
MEMBERS
ใช้เพื่อกำหนดสมาชิกบนเซิร์ฟเวอร์ -e MEMBERS= " 1234567890,0987654321 "
VISITORS
ใช้เพื่อกำหนดผู้เข้าชมบนเซิร์ฟเวอร์ -e VISITORS= " 1234567890,0987654321 "
มีสองวิธีในการจัดการผู้อนุญาต:
สิ่งแรกคือการตั้งค่าตัวแปรสภาพแวดล้อม ALLOW_LIST
เป็น TRUE และ MAP ในไฟล์ ALLOWLIST.JSON (ก่อนหน้านี้รู้จักกันในชื่อ "Whitelist.json") ที่กำหนดเองให้กับคอนเทนเนอร์
อีกอย่างคือการตั้งค่าตัวแปรสภาพแวดล้อม ALLOW_LIST_USERS
เป็นรายการผู้ใช้แท็กแท็กเกมที่คั่นด้วยเครื่องหมายจุลภาคและ XUIDS ที่เกี่ยวข้อง ชื่อผู้ใช้แต่ละคนควรตามด้วย XUID ซึ่งคั่นด้วยลำไส้ใหญ่ เซิร์ฟเวอร์จะใช้รายละเอียดเหล่านี้เพื่อให้ตรงกับผู้เล่น
มีเครื่องมือต่าง ๆ ในการดู XUIDS ออนไลน์และพวกเขายังพิมพ์ไปยังบันทึกเมื่อผู้เล่นเข้าร่วมเซิร์ฟเวอร์
-e ALLOW_LIST_USERS= " player1:1234567890,player2:0987654321 "
หรือที่เรียกว่าพฤติกรรมหรือแพ็คทรัพยากรเพื่อเพิ่ม mods ลงในเซิร์ฟเวอร์ของคุณคุณสามารถทำตามขั้นตอนเหล่านี้ทดสอบด้วย OPS (ผู้เล่นหนึ่งคนนอนหลับ) และ Bedrocktweaks
C:UsersUSERAppDataLocalPackagesMicrosoft.MinecraftUWP_*LocalStategamescom.mojang
หากคุณต้องการติดตั้งโดยไม่ต้องใช้ไคลเอนต์คุณควรจะสามารถคลายซิป mods ลงในระดับเสียงของเซิร์ฟเวอร์ได้โดยตรง. mcaddon ควรเข้าสู่พฤติกรรม _packs และ. mcpack ลงใน Resource_packs ทั้ง. mcaddon และ. mcpack ถูกเปลี่ยนชื่อไฟล์. zip จริง ๆ
worlds/$level-name/world_behavior_packs.json
คุณจะต้องเพิ่มรายการสำหรับแต่ละ mod เช่นใน 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
ในserver.properties
ที่ควรเปลี่ยนเป็นtrue
สามารถลบแพ็คทรัพยากรได้โดยเข้าสู่การตั้งค่า> ที่เก็บข้อมูล> ข้อมูลแคชจากนั้นเลือกแพ็คและคลิกที่ถังขยะ
สำหรับข้อมูลเพิ่มเติม FoxyNotail ทำวิดีโอที่อธิบายเหมือนกันบนเซิร์ฟเวอร์ที่ทำงานบน Windows
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการจัดการเซิร์ฟเวอร์เฉพาะของข้อเท็จจริงโดยทั่วไปให้ตรวจสอบโพสต์ Reddit นี้
ภาพนี้มาพร้อมกับสคริปต์ที่เรียกว่า send-command
ที่จะส่งคำสั่ง BETROCK และอาร์กิวเมนต์ไปยังคอนโซลเซิร์ฟเวอร์ Bedrock เอาต์พุตของคำสั่งสามารถมองเห็นได้ในบันทึกคอนเทนเนอร์เท่านั้น
ตัวอย่างเช่น:
docker exec CONTAINER_NAME_OR_ID send-command gamerule dofiretick false
อีกทางเลือกหนึ่งด้วยการเปิดใช้งาน stdin และ tty (เช่นใช้ -it
) ติดกับคอนโซลของคอนเทนเนอร์ด้วยชื่อหรือ ID โดยใช้:
docker attach CONTAINER_NAME_OR_ID
ในขณะที่แนบคุณสามารถเรียกใช้คำสั่งฝั่งเซิร์ฟเวอร์ใด ๆ เช่น op'ing ผู้เล่นของคุณเป็นผู้ดูแลระบบ:
gamerule dofiretick false
เมื่อเสร็จแล้วให้แยกออกจากคอนโซลเซิร์ฟเวอร์โดยใช้ CTRL-P, CTRL-Q
ไดเรกทอรีตัวอย่างมีตัวอย่างไฟล์ Docker Compose ที่ประกาศ:
/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 สำหรับเครื่องยนต์เดสก์ท็อปและ Google Kubernetes:
kubectl apply -f examples/kubernetes.yml
คุณสามารถติดตามบันทึกการปรับใช้โดยใช้:
kubectl logs -f deployment/bds
@TheTinkerDad ให้การสอนที่ยอดเยี่ยมเกี่ยวกับวิธีการโฮสต์หลายอินสแตนซ์ในพอร์ตเดียว (19132) เพื่อให้สามารถค้นพบได้: https://www.youtube.com/watch?v=DS0_ESZJBFS
เมื่อพยายามสร้างอิมเมจนักเทียบท่านี้ให้ตรวจสอบให้แน่ใจว่าไฟล์
.sh
ทั้งหมดมีลำดับบรรทัดสิ้นสุดของLF
ไม่ใช่CLRF
หรือบิลด์จะล้มเหลว