0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

windowsのwslに構築したdockerで統合版マイクラのサーバーを立ててみた

0
Last updated at Posted at 2025-12-20

windowsマシン上でLinuxを実行できる Windows Subsystem for Linux (WSL) にインストールした DockerMinecraft Bedrock Server構築してみました。Dockerを利用することで、環境を汚さずに試行錯誤ができます。Dockerfileを自作して、独自のイメージから構築してみました。

システム構成.png

本記事で紹介する wsl を用いる方法はマルチプレイには不向きです。windowsマシンでサーバーを立てるなら、windows向けの統合版マイクラサーバーの利用をオススメします。

本記事は統合版マインクラフトで動作確認を行っています。
Minecraft for Windows 1.21.131

既存のimageを使う場合

itzg/minecraft-bedrock-serverというimageが利用できます。

docker run -d -it -e EULA=TRUE -p 19132:19132/udp -v mc-bedrock-data:/data itzg/minecraft-bedrock-server

本記事では、Dockerfileを自作してイメージから構築する手順をお届けします。

Bedrock Serverのダウンロード

公式の配布サイトから「Ubuntu (Linux) 用 Minecraft 専用サーバーのソフトウェア」の方を利用規約に同意してダウンロードリンクをコピーします。

とりあえずマイクラのサーバーを起動する

dockerを使ってとりあえず統合版マイクラのサーバーを起動する方法です。

この方法の場合、一度デタッチすると、二度と統合版マイクラのコンソールに戻れません。 とりあえず起動してログや疎通を確認したい場合には使えます。

Dockerfile
FROM ubuntu:24.04

# 必要なパッケージのインストール
RUN apt-get update && \
    apt-get install -y wget unzip libcurl4&& \
    mkdir -p /minecraft/server

# 作業ディレクトリの設定
WORKDIR /minecraft

# bedrock-serverをダウンロードして、展開
RUN wget https://www.minecraft.net/bedrockdedicatedserver/bin-linux/bedrock-server-1.21.131.1.zip
RUN unzip bedrock-server* -d server/

# 設定ファイルをコピー
COPY server ./server

# 作業ディレクトリの設定
WORKDIR /minecraft/server

# ポート開放
EXPOSE 19132/udp

CMD ["sh", "-c", "LD_LIBRARY_PATH=. ./bedrock_server"]

serverには各種設定ファイルを配置します。

ディレクトリ構成
├─ Dockerfile
├─ server
│   ├─ allowlist.json
│   ├─ permissions.json
│   └─ server.properties
└─ worlds

各種設定ファイルの書き方はwindows版と同様です。

# イメージのビルド
docker image build --tag bedrock-image .
# コンテナを作成してアタッチ
docker container run --name bedrock-server -it --rm -p 19132:19132/udp -v ./worlds:/minecraft/server/worlds bedrock-image

# 終了するときは
stop

一度デタッチしてしまうと、stopコマンドを送る方法がなくなり

docker stop bedrock-server

では10秒後に強制終了されます。

dockerでscreenを使う

マイクラのサーバーを正常終了させるために、screenを使用します。

システム構成.png

ディレクトリ構成
├─ Dockerfile
├─ server
│   ├─ start.sh
│   ├─ allowlist.json
│   ├─ permissions.json
│   └─ server.properties
└─ worlds
Dockerfile
FROM ubuntu:24.04

# 必要なパッケージのインストール
RUN apt-get update && \
    apt-get install -y wget unzip libcurl4 screen&& \
    mkdir -p /minecraft/server

# 作業ディレクトリの設定
WORKDIR /minecraft

# bedrock-serverをダウンロードして、展開
RUN wget https://www.minecraft.net/bedrockdedicatedserver/bin-linux/bedrock-server-1.21.131.1.zip
RUN unzip bedrock-server* -d server/

# 設定ファイルをコピー
COPY server ./server
RUN chmod +x /minecraft/server/start.sh

# 作業ディレクトリの設定
WORKDIR /minecraft/server

# ポート開放
EXPOSE 19132/udp

ENTRYPOINT ["./start.sh"]

パッケージのインストールにscreenを追加しました。また、開始用のスクリプトを追加しています。

SIGTERMを受け取ってマイクラのサーバーにstopを送信、正常終了を待って終了します。

start.sh
#!/bin/sh

# SIGTERM を受け取ったら Bedrock に stop を送る
trap '
    echo "Stopping Bedrock..."
    screen -S bedrock -p 0 -X stuff "say サーバーをシャットダウンします。\n"
    sleep 5
    screen -S bedrock -p 0 -X stuff "stop\n"
' TERM

# screen 内で Bedrock を起動
screen -DmS bedrock sh -c '
    LD_LIBRARY_PATH=. ./bedrock_server
' &

# PID を指定
SCREEN_PID=7

# 終了を待つ
wait $SCREEN_PID

ワールドに接続しているプレイヤーに対して、メッセージを表示して5秒後に終了します。
PIDをハードコートしてしまっているので適当に調整してください。

# イメージのビルド
docker image build --tag bedrock-image .
# コンテナを作成してデタッチ
docker container run --name bedrock-server -d --rm -p 19132:19132/udp -v ./worlds:/minecraft/server/worlds bedrock-image

# screenに直接アタッチ
docker exec -it bedrock-server screen -r

# 終了するときは
docker stop bedrock-server

docker composeを使う場合は、次のようになります。

docker-compose.yml
services:
  bedrock:
    container_name: bedrock-server
    build: .
    ports:
      - "19132:19132/udp"
    volumes:
      - ./worlds:/minecraft/server/worlds
# 起動
docker compose up -d
# 終了
docker compose down

接続確認

wslが動作しているwindows側の統合版マイクラからサーバーに接続します。
wslのIPアドレスを確認します。windows側のターミナルで、次のコマンドを実行します。

wsl hostname -I

IPアドレスが3種表示されるので、1つ目のアドレスをマイクラに入力して接続します。

なお、別のPCのユーザーを接続させるには、windows側にwslの通信を接続しないといけません。統合版マイクラはUDPという通信プロトコルが用いられているため、TCPのように簡単には公開できません。設定方法はこちらの記事を参照してください。

まとめ

windowsのwsl上のdockerに統合版マイクラのサーバーコンテナを構築しました。linuxのサーバー構築練習や、アドオンのデバッグ環境としては使えそうです。

本格的にマルチプレイサーバーにするなら、linuxのサーバーを利用することをオススメします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?