2026.10.04広告・PRを含む記事です

【コピペOK】Docker Composeでマイクラサーバーを一発で立てる方法

Docker Composeでマイクラサーバーを一発起動するサムネイル
  • JavaやPaperMCを手作業でインストールするのが面倒
  • docker-compose.ymlに何を書けばいいのか分からない
  • コンテナを消したらワールドデータまで消えてしまわないか不安

Dockerでマイクラサーバーを立てれば、Javaのバージョン管理やファイル配置の手間が一切なくなり、設定ファイル1つでサーバーを管理できます。

黒い画面でのコマンド操作に身構えるかもしれませんが、実際に使うコマンドは起動・停止・ログ確認の3つだけです。

ワールドデータもPC本体側に保存(ボリュームマウント)されるため、コンテナを消しても消える心配はありません。

この記事では、コピペで即起動できるdocker-compose.ymlの設定例と、安全な構築手順をまとめました。

読み終えるころには、コマンド数発でマイクラサーバーが立ち上がり、メモリ変更やプラグイン追加もファイル1つで迷わず管理できるようになります。

管理人spaのアイコン
spaこの記事を書いた人

マイクラサーバーの構築と運用を繰り返して4年。今も経済サバイバル「spa77.works SMP」を運用中で、その経験をもとに記事100本以上を執筆。

Docker Composeでマイクラサーバーを立てる完成形

補足

この記事はJava版のPaperMCサーバーが前提です。統合版(Bedrock)やクロスプレイは手順が変わるため、GeyserMCの記事で扱っています。

Docker構成図。プレイヤーが25565ポートでコンテナ内のマイクラサーバーに接続し、ワールドデータはボリュームに保存される仕組みを示している

Docker Composeでは、マイクラサーバーの起動条件をdocker-compose.ymlにまとめます。

今回使うのは、マイクラサーバー用のDockerイメージとして実績のあるitzg/minecraft-serverです。

PaperMCサーバー、メモリ2GB、標準ポート25565、ワールドデータの保存先を1つのファイルで指定します。

Javaのインストールやバージョン管理をホスト側で行う必要がなく、別のPCやVPSへ移行するときも設定ファイルごと移動するだけで再現できます。

先に確認するのは次の2点です。

  • この記事で使う環境とバージョン
  • DockerとDocker Composeをインストールする

環境がそろっていれば、次の章の手順へそのまま進めます。

この記事で使う環境とバージョン

この記事では、次の環境を前提にします。

項目バージョン
Ubuntu24.04.2LTS
Docker28.3.1
Docker Compose2.38.1

UbuntuサーバーでDockerを使える状態にしてから、マイクラサーバー用のフォルダを作る流れです。

DockerとDocker Composeをインストールする

先にDockerとDocker Composeをインストールします。

Ubuntuなら、次のコマンドでDockerのインストールと動作確認までまとめて済ませます。

Terminal window
curl -fsSL get.docker.com -o get-docker.sh && sudo sh get-docker.sh && sudo gpasswd -a $USER docker && sudo docker run hello-world && rm -f get-docker.sh

Hello from Docker!と表示されれば、Dockerのインストールは完了です。

補足

もしこのあとdocker composeで権限エラーが出る場合は、一度SSHを切断してログインし直してください。追加したDockerグループの権限が現在のターミナルセッションに反映されていない可能性があります。

Docker Composeでマイクラサーバーを構築する手順

Docker Composeコマンドを入力する端末と、コンテナ起動からログ確認までの流れを示す図解

作業は、サーバー用フォルダの作成、設定ファイルの貼り付け、起動確認の順です。

  • docker-compose.ymlにマイクラサーバーの設定を書く
  • ワールドデータを永続化する
  • Dockerコンテナを起動してログを確認する
  • マイクラからサーバーに接続して動作確認する
  • 外部接続にはポート開放が必要になる
  • RCONでサーバー内コマンドを実行する

最初に作るdocker-compose.ymlが、この記事の中心です。

このファイルを作ってから、起動、ログ確認、接続確認へ進みます。

docker-compose.ymlにマイクラサーバーの設定を書く

最初に、docker-compose.ymlを作成します。

そのまま使える最小構成の設定例です。

services:
minecraft:
image: itzg/minecraft-server:latest
container_name: papermc-server
restart: unless-stopped
stop_grace_period: 1m
ports:
- "25565:25565"
environment:
EULA: "TRUE"
TYPE: "PAPER"
VERSION: "LATEST"
MEMORY: "2G"
DIFFICULTY: "normal"
volumes:
- ./minecraft_data:/data

この設定で指定している主な内容は4つです。

  • PaperMCサーバーを使う
  • バージョンは最新にする
  • メモリは2GBにする
  • 難易度はノーマルにする

サーバーの種類やメモリを変えたいときは、このファイルの値を書き換えます。

このあとの節で、プラグイン・MOD・OP権限・ホワイトリストも同じenvironmentの中に追記して設定します。

ワールドデータを永続化する

コンテナ環境でサーバーを運用する際、最も重要なのがデータの保存設定です。

コンテナを削除してもワールドデータは消えない

docker-compose.ymlで./minecraft_data:/dataとボリュームマウントを指定しているため、ワールドデータはホスト側のフォルダに保存されます。

docker compose downでコンテナを破棄してもデータはそのまま残ります。

サーバー用の作業フォルダを作り、その中にdocker-compose.ymlを置きます。

Terminal window
mkdir ~/minecraft && cd ~/minecraft
nano docker-compose.yml

nanoエディタが開いたら、上の設定をそのまま貼り付けるだけです。

貼り付けたあとは、次の順に押すと保存して閉じられます。

  • Ctrl+O(保存)
  • Enter(ファイル名を確定)
  • Ctrl+X(エディタを閉じる)

nanoエディタでdocker-compose.ymlを編集している画面。PaperMCサーバーの設定内容が記述されている

Dockerコンテナを起動してログを確認する

docker-compose.ymlを保存したら、同じフォルダで起動コマンドを実行します。

コマンドはdocker-compose.ymlがあるフォルダで実行するのが前提です。

Terminal window
docker compose up -d

これでマイクラサーバーのコンテナが起動した状態です。

初回起動ではファイルの生成に1〜2分かかります。

ログの末尾にDoneが出るまで待ちます。

Terminal window
docker compose logs --tail=20

ログにDoneが出たら、サーバーは接続待ちの状態です。

ターミナルでdocker compose logsコマンドを実行し、サーバー起動完了のDoneメッセージが表示されている

マイクラからサーバーに接続して動作確認する

自宅内のPCや同じWi-Fiから接続するなら、サーバーPCのローカルIPアドレスとポート番号25565を入力します。

マイクラ側でアドレスを入れる操作は、接続方法の記事に画面付きで載せています。

外部接続にはポート開放が必要になる

自宅PCで立てたサーバーに外部の人を招待する場合は、ルーターのポート開放が別途必要です。

補足

ポート開放が難しい環境では、playit.ggなどのトンネルツールを使うと外部から接続できます。

VPSやレンタルサーバーで動かす場合は、ルーターのポート開放ではなく、サーバー側のファイアウォールや管理画面のポート設定を確認します。

RCONでサーバー内コマンドを実行する

Dockerで起動したマイクラサーバーへゲーム内コマンドを送るときは、rcon-cliを使います。

docker compose execでコンテナの中に入り、その中のrcon-cliでサーバーへコマンドを渡す形です。

Terminal window
docker compose exec -i minecraft rcon-cli

通常のサーバーコンソールに直接入力する形とは少し違い、Dockerコンテナを経由してコマンドを送る点が特徴です。

時間を朝にするなら、次のように実行します。

Terminal window
docker compose exec -i minecraft rcon-cli time set day

これだけでゲーム内時間を朝に切り替えられます。

RCONポートをインターネットに公開しない

RCONポートを外部に公開すると、第三者からサーバー停止やOP付与などの管理者コマンドを遠隔実行される重大な危険があります。

この記事のようにコンテナ内部へのdocker compose exec経由で実行し、RCONポートは外部公開しないでください。

Docker ComposeでプラグインとMODを環境変数で導入する

docker-compose.ymlのPLUGINSとMODSを使い、起動時に取得してpluginsとmodsフォルダへ配置する流れを示した図解

itzg/minecraft-serverは、環境変数にURLを書くだけでプラグインやMODを自動でダウンロードして配置します。

サーバーに入ってjarファイルを手作業で置く手間がいりません。

プラグインはPaperMCなどで動く拡張、MODはFabricやForgeで動く拡張です。

どちらもdocker-compose.ymlのenvironmentに1行追記するだけで導入できます。

扱うのは次の2つです。

  • プラグインを導入する
  • MODを導入する

書く場所はどちらも同じで、使う環境変数の名前だけが変わります。

プラグインを導入する

PaperMCサーバーにプラグインを入れるときは、PLUGINSにjarファイルのURLをカンマ区切りで指定します。

environmentの中に次の行を追記するだけです。

PLUGINS: "https://配布元のURL/EssentialsX.jar, https://配布元のURL/LuckPerms.jar"
補足

設定例のURLはプレースホルダーです。各配布元から入手したjarファイルの直接ダウンロードURLに置き換えて設定してください。

複数ある場合はカンマで区切って並べる形です。

設定を保存したら、サーバーを作り直して反映します。

Terminal window
docker compose down
docker compose up -d

起動時にプラグインは自動でダウンロードされ、minecraft_data/pluginsに配置される仕組みです。

プラグインが意図通りに動くかは、ゲーム内に入って確認してください。

正常に動作しない場合は、配布元の対応バージョンとサーバーのマイクラバージョンが一致しているか確かめましょう。

プラグインとMODの違いや入れ方の基本は、プラグインの解説記事から押さえられます。

MODを導入する

MODを入れるときは、サーバーの種類をPaperではなくFabricやForgeに切り替えます。

TYPEを書き換え、MODSにMODのjar URLを指定します。

TYPE: "FABRIC"
MODS: "https://配布元のURL/lithium.jar"

ここではサーバー側でも動くLithiumを例にしています。ほかに入れられる軽量化MODの選び方もまとめました。

補足

Sodiumなどの描画最適化MODはクライアント専用です。サーバー側に入れても動作しないか起動エラーの原因になるため導入しないでください。

補足

Fabricでは多くのMODがFabric APIを別途必要とします。Fabric APIのjarもMODSに一緒に指定してください。

Paperはプラグイン専用、FabricやForgeはMOD用と覚えておきます。

MODサーバーを立てる手順全体は、MODサーバーの立て方の記事で別途解説しています。

OP権限とホワイトリストを環境変数で設定する

サーバーを立てたら、次は誰を管理者にするか、誰を入れるかを決めます。

これもdocker-compose.ymlの環境変数で設定するだけです。

ゲーム内でコマンドを1つずつ打つより、ファイルに書いておくほうがサーバーを作り直しても同じ状態を復元できます。

設定するのは次の2つです。

  • OP権限を付与する
  • ホワイトリストで参加者を制限する

どちらもファイルに残るので、コンテナを作り直しても同じ状態へ戻せます。

OP権限を付与する

OPにしたいプレイヤーは、OPSにマイクラのIDをカンマ区切りで指定します。

environmentに次の行を追記するだけです。

OPS: "PlayerName1, PlayerName2"

設定後、サーバーを作り直すと起動時にOP権限が付与されます。

Terminal window
docker compose down
docker compose up -d

IDは大文字小文字を区別するため、マイクラで表示されている名前をそのまま使います。

レベル1〜4の違いやdeopでの剥奪は、OP権限の記事で扱います。

ホワイトリストで参加者を制限する

公開サーバーでは、ホワイトリストで許可した人だけ入れるようにします。

WHITELISTにIDを指定するだけで、ホワイトリストは有効です。

WHITELIST: "PlayerName1, PlayerName2"

ENABLE_WHITELISTをTRUEにすると、より明示的にオンを示せます。

ENABLE_WHITELIST: "TRUE"

サーバーを作り直すと、リスト外のプレイヤーは入れなくなります。

プレイヤーを1人ずつ追加・削除する手順は、ホワイトリストの記事に分けて載せました。

ワールドデータをバックアップ・復元する

Dockerで立てたサーバーは、ワールドデータがminecraft_dataフォルダ1つにまとまっています。

このフォルダをコピーするだけでバックアップは完了です。

バックアップ時は、サーバーを書き込み中にコピーしないよう、一度止めてから行います。

Terminal window
docker compose stop
cp -r minecraft_data minecraft_data_backup
docker compose start

docker compose stopはコンテナを残したまま一時停止するため、データは安全な状態でコピーできます。

Dockerの既定では停止猶予時間が10秒のため、ワールドの保存が終わる前に強制終了されないよう、docker-compose.ymlにstop_grace_period: 1mを指定しておくか、停止が完了したことを確認してからコピーします。

復元するときは、バックアップしたフォルダの中身をminecraft_dataに戻して起動し直すだけです。

荒らし被害や操作ミスから戻すときも、この手順で直前の状態に復元できます。

バックアップを毎日自動で取りたい場合は、自動バックアップの記事で手順を紹介しています。

Docker Composeでサーバーを停止・再起動する

起動後によく使うのは、停止、再起動、ログ確認の3つです。

  • サーバーを停止する
  • サーバーを再起動する
  • ログをリアルタイムで確認する

どれもdocker-compose.ymlを置いたフォルダで実行します。

サーバーを停止する

サーバーを止めるときは、次のコマンドを実行します。

Terminal window
docker compose down
補足

docker compose downはコンテナを停止して削除しますが、ホスト側にマウントされたminecraft_dataフォルダ内のワールドデータは保持されます。

サーバーを再起動する

サーバーを一度止めて起動し直したいときは、次のコマンドを使います。

Terminal window
docker compose restart

ただし、docker-compose.ymlのメモリやポート、環境変数を書き換えたあとは、restartではなく作り直しの流れにします。

設定ファイルを反映し直す場合は、次の2つを順番に実行するのが基本です。

Terminal window
docker compose down
docker compose up -d

再起動後に動作状態を見るなら、次のコマンドを使います。

Terminal window
docker compose ps

ステータスがUpなら正常稼働中です。

Exitと表示される場合は、エラーでコンテナが停止しています。

docker compose logs -fを実行して直近のログを確認してください。ログに出たエラー文から原因を絞りたいときは、サーバーが起動しないときのエラー別ガイドで同じエラー文を探すのが早いです。

ログをリアルタイムで確認する

サーバーの動きを流れで追うときは、次のコマンドが便利です。

Terminal window
docker compose logs -f

-fをつけるとログがリアルタイムで流れ続けます。

Ctrl+Cで止められます。

Dockerでマイクラサーバーを立てるメリット

Dockerでマイクラサーバーを立てる一番のメリットは、サーバーの状態を作り直しやすいことです。

普通にサーバーファイルを置いて動かす方法だと、あとからJavaのバージョン、起動コマンドのありか、ワールドデータの場所を探しがちです。

Docker Composeなら、サーバーの起動条件をdocker-compose.yml1つに寄せられます。

  • 設定ファイルだけで構築できる
  • プラグインやOP権限もファイルに書いて管理できる
  • メモリやバージョンの変更場所を1つに絞れる
  • データの保存先がフォルダ1つで分かりやすい

設定ファイルだけで構築できる

設定ファイルをコピペすると、サーバーの起動条件をまとめて指定した状態になります。

Javaの本体やサーバーjarをホストに置かなくて済むため、あとで、どのJavaで動かしていたかを探す必要がありません。

Dockerはコンテナの中にJavaやサーバーファイルを閉じ込めるため、ホストPCのフォルダにはdocker-compose.ymlとminecraft_dataしか残りません。

プラグインやOP権限もファイルに書いて管理できる

プラグインの導入やOP権限の付与も、docker-compose.ymlの環境変数に書いておけます。

ゲーム内で毎回コマンドを打ち直す必要がありません。

サーバーを作り直しても、ファイルを読み込むだけで同じ構成が復元されます。

メモリやバージョンの変更場所を1つに絞れる

メモリを2GBから4GBへ増やすなら、docker-compose.ymlのMEMORYを書き換えます。

マイクラのバージョンを固定したいときは、VERSIONを変更するだけです。

MEMORYやVERSIONなど、変更する値がdocker-compose.ymlの同じブロックにまとまっているため、複数の設定ファイルを行き来して書き換える手間が減ります。

何GBにするか迷ったら、メモリ割り当ての目安の人数別の表から決められます。

データの保存先がフォルダ1つで分かりやすい

データを保存するフォルダを指定しておけば、コンテナを作り直してもワールドを引き継げます。

バックアップを取るときも、minecraft_dataフォルダをコピーすれば対象が明確です。

別PCへ移すときも、このフォルダとdocker-compose.ymlを持っていけば同じ環境が再現できます。

自宅PCではなくroot権限のあるVPSで動かしたい場合も、同じdocker-compose.ymlをそのまま使えます。

4GBは36カ月契約で月2,035円。SSHで自由にDocker環境を組めます

XServer VPS for Gameの料金プランを見る

Dockerで立てる前に知っておく注意点

Docker Composeは設定をファイルで管理できる反面、ターミナルでのコマンド入力が必要です。

ただし、仕組みをすべて理解する必要はありません。この記事の手順で使うコマンドは次の3つだけです。

  • docker compose up -d:サーバーをバックグラウンドで起動する
  • docker compose down:コンテナを停止して終了する
  • docker compose logs:サーバーの起動ログやエラーを確認する

この3つのコマンドさえ押さえれば、サーバーの起動・停止・ログ確認の日常操作は十分に回せます。

初心者

黒い画面、間違えたら壊れそうで正直こわいです。

spa

打つのはdocker compose up -d・down・logsの3つが中心で、どれもコピペで済みます。おかしくなったらdownで止めて打ち直せば大丈夫ですよ!

よくある質問

Q`docker compose down`を実行すると、ワールドも消えますか?
A

通常の`docker compose down`では、ホスト側へマウントしたワールドや名前付きボリュームは残ります。ただし`docker compose down -v`は名前付きボリュームも削除するため、実行前に保存先とバックアップを確認します。

QDocker版のマイクラサーバーは、どう更新すれば安全ですか?
A

先にデータの保存先をバックアップし、docker compose pullで新しいイメージを取得してから、docker compose up -dで再作成します。/dataをホストへマウントした構成ならデータは残りますが、起動ログとプラグインの互換性も確認します。

まとめ:Docker Composeなら設定ファイルでマイクラサーバーを管理できる

Docker Composeでマイクラサーバーを立てるときは、最初から全部を理解する必要はありません。

最初のゴールは、この記事のdocker-compose.ymlを貼り付けて、サーバーが起動するところまでです。

ただ、Docker Composeはサーバーを一度立てて終わりではなく、設定ファイルを残すことであとの変更を同じファイルで済ませられる点が強みです。

  • メモリを増やすときは、MEMORYを書き換える
  • バージョンを固定するときは、VERSIONを書き換える
  • プラグインを入れるときは、PLUGINSにURLを追記する
  • OP権限やホワイトリストは、OPSやWHITELISTにIDを書く
  • ワールドを残す・戻すときは、minecraft_dataフォルダを見る

まずは、docker compose up -dで起動し、ログにDoneが出るかを見ます。

そこまで進めば、Dockerの細かい仕組みはあとから覚えれば十分です。

サーバーが起動したら、サーバーアドレスを登録してマイクラから入れるか試します。

友達に外から参加してもらうなら、公開方法を決めることも必要です。

ポート開放が難しい場合は、ポート開放なしで公開する方法も検討します。