778 文字
2 分
日本語

DockerでMinecraftサーバーを構築する

最近、MacでMinecraftサーバーを立てたくなりました。

サーバーのディレクトリで./run.bashを実行するだけなら簡単ですが、ターミナルとJavaプロセスをずっとバックグラウンドで動かしておくのは、さすがにあまりスマートではありません。Screenを使えばターミナルは隠せますが、Javaサービス自体の状態までは管理してくれません。

Dockerならこういうサービスも簡単にデプロイできるので、Minecraftサーバーにも使えないかと思って調べてみました。

そして運よく、itzg/minecraft-serverがありました!

概要#

GitHubはこちら:

itzg
/
docker-minecraft-server
Waiting for api.github.com...
00K
0K
0K
Waiting...

ドキュメントには、次のように紹介されています。

このDockerイメージは、起動時にMinecraft Serverの最新安定版を自動でダウンロードします。特定のバージョンや最新スナップショットを実行したり、アップグレードしたりすることもできます。詳しくはVersionsのセクションを参照してください。

最新の安定版を使うだけなら、次のコマンドを実行します。

Terminal window
docker run -d -it -p 25565:25565 -e EULA=TRUE itzg/minecraft-server

この場合、標準のサーバーポート25565がホスト側に公開されます。

Docker Compose#

上のコマンドで直接イメージを起動するより、ほかの一般的なプロジェクトと同じくDocker Composeを使うほうがおすすめです。

公式の手順は次のとおりです。

  1. 新しいディレクトリを作成する

  2. 下の内容をcompose.yamlというファイル名で保存する

  3. そのディレクトリでdocker compose up -dを実行する

  4. 完了!クライアントからホスト名またはIPアドレスとポート25565を指定して接続する

docker.yaml
services:
mc:
image: itzg/minecraft-server:latest
pull_policy: daily
tty: true
stdin_open: true
ports:
- "25565:25565"
environment:
EULA: "TRUE"
volumes:
# attach the relative directory 'data' to the container's /data path
- ./data:/data

Composeファイルを変更した後は、もう一度docker compose up -dを実行すれば反映されます。

docker compose logs -fでログを追い、docker compose psで状態を確認し、docker compose stopでコンテナを停止できます。

Dockerを使い始めたばかりだと、volumesが少し分かりにくいかもしれません。実際はそれほど複雑ではなく、ディレクトリ構成は例えば次のようになります。

Your-MC-Server-Folder
├── data
│   ├── config
│   ├── eula.txt
│   ├── kubejs
│   ├── mods
│   ├── server.properties
│   └── world
└── docker-compose.yml

Your-MC-Server-Folderの中にあるdataが、Modやワールドデータを置く場所です。先にDocker Composeを実行してコンテナ側でデータを生成してもいいですし、既存のデータをdataへ移動しても構いません。

LoaderとMod#

compose.yamlの変数を変更するだけで、Mod入りのサーバーも起動できます。以下は自分が使っている設定です。SetupMCを使って設定を生成することもできます。

services:
mc:
image: itzg/minecraft-server:latest
tty: true
stdin_open: true
ports:
- "25565:25565"
- "24454:24454/udp"
environment:
EULA: "TRUE"
TYPE: "NEOFORGE"
VERSION: "1.21.1"
INIT_MEMORY: "4G"
MAX_MEMORY: "12G"
MOTD: "A Minecraft Server"
TZ: "Asia/Tokyo"
DIFFICULTY: "hard"
volumes:
- "./data:/data"

ちなみに、24454/udpはMod「Simple Voice Chat」のために開けています。この場合、Simple Voice Chatの設定でもIPを0.0.0.0に変更する必要があります。

それでは……#

楽しんで!

DockerでMinecraftサーバーを構築する
https://www.shiinayane.com/ja/posts/deploy-minecraft-server-with-docker/
著者
YANKAI WANG
公開日
2026-01-15
ライセンス
CC BY-NC-SA 4.0