다음은 기본 버전을 실행하고 기본 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
변수가 기본값 인 "최신"으로 설정된 경우 컨테이너를 다시 시작하여 기반선 서버를 업그레이드 할 수 있습니다. 매장마다 컨테이너는 최신 버전을 확인하고 필요한 경우 업그레이드를 확인합니다.
"미리보기"로 VERSION
설정하여 최신 미리보기 버전을 요청할 수 있습니다.
Minecraft Java Edition의 경우이 이미지를 대신 사용해야합니다.
ITZG/Minecraft-Server
EULA
(기본값 없음) : Minecraft 최종 사용자 라이센스 계약을 수락하려면 TRUE
로 설정해야합니다.VERSION
(기본값은 LATEST
) : 특정 서버 버전으로 설정하거나 다음 특수 값을 사용할 수 있습니다.LATEST
: 최신 (비 예정) 버전을 결정하고 컨테이너 시작에서 자동 업그레이드하는 데 사용할 수 있습니다.PREVIEW
: 최신 미리보기 버전을 결정하고 자동 업그레이드됩니다.PREVIEW
"true"로 설정하십시오.UID
( /data
소유자에서 파생 된 기본값) : Bedrock Server 프로세스를 실행하기 위해 특정 사용자 ID로 설정할 수 있습니다.GID
( /data
Owner에서 파생 된 기본값) : Bedrock Server 프로세스를 실행하기 위해 특정 그룹 ID로 설정할 수 있습니다.TZ
(기본값 없음) : America/New_York
와 같은 특정 시간대로 설정할 수 있습니다. 이것은 Docker 컨테이너와 로그의 시간대를 설정합니다. 또한, 시간을 호스트와 동기화하려면 /etc/localtime
파일을 호스트에서 /etc/localtime:/etc/localtime:ro
와 같은 컨테이너로 장착 할 수 있습니다.PACKAGE_BACKUP_KEEP
( 2
) : 보관할 패키지 백업 수 다음 환경 변수는 각각이 여기에 설명 된 server.properties
에서 동등한 속성을 설정합니다. 일반적으로, 각 속성은 대신 대신 상위 _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
가 설정 한 IPv4의 기반암 서버 포트. IPv6 포트는 기본적으로 노출되지 않습니다. -p 19132:19132/udp
와 같은 포트를 노출시킬 때 /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
이름이 지정된 볼륨을 사용하고 기반암 프로세스가 뿌리가 아닌 사용자로 실행되기를 원한다면 볼륨을 사전 제작하여 원하는 사용자에게 chown
해야합니다.
예를 들어, Bedrock 서버가 사용자 ID 1000 및 Group ID 1000으로 실행 되려면 다음을 사용하여 "Bedrock"이라는 볼륨을 작성하여 chown하십시오.
docker run --rm -v bedrock:/data alpine chown 1000:1000 /data
docker run
사용하는 경우 -v
인수에서 해당 볼륨 "기반암"을 참조하십시오. Compose 파일을 사용하는 경우,이 유형의 선언을 사용하여 볼륨을 외부로 선언하십시오.
volumes :
bedrock :
external :
name : bedrock
LAN에서 컨테이너를 실행할 때 "Friends"탭의 "LAN Games"부분에서 전용 서버를 찾아 연결할 수 있습니다.
기반암 전용 서버는 권한을 xuids로 정의해야합니다. 온라인에서 이러한 도구가 있으며 플레이어가 합류 할 때도 로그에 인쇄됩니다. 각 그룹을 구성하는 3 가지 수준의 권한과 3 가지 옵션이 있습니다.
OPS
서버에서 연산자를 정의하는 데 사용됩니다. -e OPS= " 1234567890,0987654321 "
MEMBERS
서버의 멤버를 정의하는 데 사용됩니다. -e MEMBERS= " 1234567890,0987654321 "
VISITORS
서버의 방문자를 정의하는 데 사용됩니다. -e VISITORS= " 1234567890,0987654321 "
화이트리스트를 처리하는 두 가지 방법이 있습니다.
첫 번째는 ALLOW_LIST
환경 변수를 true로 설정하고 allesslist.json 파일 (이전 "Whitelist.json")에서 컨테이너에 맞춤 제작 된 것으로 표시하는 것입니다.
다른 하나는 ALLOW_LIST_USERS
환경 변수를 쉼표로 구분 된 게이머 태그 사용자 이름 및 해당 XUIDS로 설정하는 것입니다. 각 사용자 이름은 콜론으로 분리 된 xuid가이어야합니다. 서버는이 세부 사항을 사용하여 플레이어와 일치합니다.
온라인으로 xuids를 볼 수있는 다양한 도구가 있으며 플레이어가 서버에 가입하면 로그에 인쇄됩니다.
-e ALLOW_LIST_USERS= " player1:1234567890,player2:0987654321 "
동작 또는 리소스 팩이라고도하는 경우 서버에 모드를 추가하기 위해 OPS (One Player Sleep) 및 BedrocktWeaks로 테스트 한 단계를 수행 할 수 있습니다.
C:UsersUSERAppDataLocalPackagesMicrosoft.MinecraftUWP_*LocalStategamescom.mojang
에 추가해야합니다. C:UsersUSERAppDataLocalPackagesMicrosoft.MinecraftUWP_*LocalStategamescom.mojang
.클라이언트를 사용하지 않고 설치하려면 모드를 서버의 볼륨으로 직접 압축 할 수 있어야합니다. .mcaddon은 havior_packs로 이동하고 .mcpack은 resource_packs로 가야합니다. .mcaddon과 .mcpack은 실제로 .zip 파일로 이름이 바뀌 었습니다.
worlds/$level-name/world_behavior_packs.json
에서 생성하려면 이전 선언문에서와 같이 각 모드에 대한 항목을 추가해야합니다. []가있는 쉼표 및 이중 인용문.또한
worlds/$level-name/world_resource_packs.json
을 만들 수 있지만 동일한 JSON 내부에 리소스와 동작 팩을 모두 넣는 것을 보았습니다.
[
{
"pack_id" : "5f51f7b7-85dc-44da-a3ef-a48d8414e4d5",
"version" : [ 3, 0, 0 ]
}
]
모든 클라이언트의 리소스 팩을 강제하려면
server.properties
texturepack-required=false
true
이 있습니다. 설정> 스토리지> 캐시 된 데이터로 이동 한 다음 팩을 선택하고 휴지통 캔을 클릭하여 리소스 팩을 삭제할 수 있습니다.
자세한 정보를 위해 Foxynotail은 Windows에서 실행되는 서버에서 동일하게 설명하는 비디오를 수행했습니다.
Bedrock 전용 서버 관리에 대한 자세한 내용은 일반적 으로이 Reddit 게시물을 확인하십시오.
이 이미지는 기반암 명령과 인수를 Bedrock Server 콘솔에 보내는 send-command
라는 스크립트와 함께 제공됩니다. 명령의 출력은 컨테이너 로그에서만 볼 수 있습니다.
예를 들어:
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 manifest 파일이 포함되어 있습니다.
POD 배포에는 환경 변수를 통해 서버 속성을 구성하는 몇 가지 예가 포함됩니다.
env :
- name : EULA
value : " TRUE "
- name : GAMEMODE
value : survival
- name : DIFFICULTY
value : normal
파일은 대부분의 클러스터에 배포 가능하지만 Dockker에서 Docker에서 확인되었습니다.
kubectl apply -f examples/kubernetes.yml
다음을 사용하여 배포 로그를 따를 수 있습니다.
kubectl logs -f deployment/bds
@thetinkerdad는 단일 포트 (19132)에서 여러 인스턴스를 호스팅하여 발견 할 수 있도록 훌륭한 자습서를 제공합니다 : https://www.youtube.com/watch?v=ds0_eszjbfs
이 Docker 이미지를 빌드하려고 할 때 모든
.sh
파일에CLRF
가 아닌LF
의 행 순서가 있거나 빌드가 실패하는지 확인하십시오.