2026.10.04広告・PRを含む記事です
【コピペOK】Docker Composeでマイクラサーバーを一発で立てる方法

- JavaやPaperMCを手作業でインストールするのが面倒
- docker-compose.ymlに何を書けばいいのか分からない
- コンテナを消したらワールドデータまで消えてしまわないか不安
Dockerでマイクラサーバーを立てれば、Javaのバージョン管理やファイル配置の手間が一切なくなり、設定ファイル1つでサーバーを管理できます。
黒い画面でのコマンド操作に身構えるかもしれませんが、実際に使うコマンドは起動・停止・ログ確認の3つだけです。
ワールドデータもPC本体側に保存(ボリュームマウント)されるため、コンテナを消しても消える心配はありません。
この記事では、コピペで即起動できるdocker-compose.ymlの設定例と、安全な構築手順をまとめました。
読み終えるころには、コマンド数発でマイクラサーバーが立ち上がり、メモリ変更やプラグイン追加もファイル1つで迷わず管理できるようになります。
Docker Composeでマイクラサーバーを立てる完成形
この記事はJava版のPaperMCサーバーが前提です。統合版(Bedrock)やクロスプレイは手順が変わるため、GeyserMCの記事で扱っています。

Docker Composeでは、マイクラサーバーの起動条件をdocker-compose.ymlにまとめます。
今回使うのは、マイクラサーバー用のDockerイメージとして実績のあるitzg/minecraft-serverです。
PaperMCサーバー、メモリ2GB、標準ポート25565、ワールドデータの保存先を1つのファイルで指定します。
Javaのインストールやバージョン管理をホスト側で行う必要がなく、別のPCやVPSへ移行するときも設定ファイルごと移動するだけで再現できます。
先に確認するのは次の2点です。
- この記事で使う環境とバージョン
- DockerとDocker Composeをインストールする
環境がそろっていれば、次の章の手順へそのまま進めます。
この記事で使う環境とバージョン
この記事では、次の環境を前提にします。
| 項目 | バージョン |
|---|---|
| Ubuntu | 24.04.2LTS |
| Docker | 28.3.1 |
| Docker Compose | 2.38.1 |
UbuntuサーバーでDockerを使える状態にしてから、マイクラサーバー用のフォルダを作る流れです。
DockerとDocker Composeをインストールする
先にDockerとDocker Composeをインストールします。
Ubuntuなら、次のコマンドでDockerのインストールと動作確認までまとめて済ませます。
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.shHello from Docker!と表示されれば、Dockerのインストールは完了です。
もしこのあとdocker composeで権限エラーが出る場合は、一度SSHを切断してログインし直してください。追加したDockerグループの権限が現在のターミナルセッションに反映されていない可能性があります。
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を置きます。
mkdir ~/minecraft && cd ~/minecraftnano docker-compose.ymlnanoエディタが開いたら、上の設定をそのまま貼り付けるだけです。
貼り付けたあとは、次の順に押すと保存して閉じられます。
Ctrl+O(保存)Enter(ファイル名を確定)Ctrl+X(エディタを閉じる)

Dockerコンテナを起動してログを確認する
docker-compose.ymlを保存したら、同じフォルダで起動コマンドを実行します。
コマンドはdocker-compose.ymlがあるフォルダで実行するのが前提です。
docker compose up -dこれでマイクラサーバーのコンテナが起動した状態です。
初回起動ではファイルの生成に1〜2分かかります。
ログの末尾にDoneが出るまで待ちます。
docker compose logs --tail=20ログにDoneが出たら、サーバーは接続待ちの状態です。

マイクラからサーバーに接続して動作確認する
自宅内のPCや同じWi-Fiから接続するなら、サーバーPCのローカルIPアドレスとポート番号25565を入力します。
マイクラ側でアドレスを入れる操作は、接続方法の記事に画面付きで載せています。
外部接続にはポート開放が必要になる
自宅PCで立てたサーバーに外部の人を招待する場合は、ルーターのポート開放が別途必要です。
ポート開放が難しい環境では、playit.ggなどのトンネルツールを使うと外部から接続できます。
VPSやレンタルサーバーで動かす場合は、ルーターのポート開放ではなく、サーバー側のファイアウォールや管理画面のポート設定を確認します。
RCONでサーバー内コマンドを実行する
Dockerで起動したマイクラサーバーへゲーム内コマンドを送るときは、rcon-cliを使います。
docker compose execでコンテナの中に入り、その中のrcon-cliでサーバーへコマンドを渡す形です。
docker compose exec -i minecraft rcon-cli通常のサーバーコンソールに直接入力する形とは少し違い、Dockerコンテナを経由してコマンドを送る点が特徴です。
時間を朝にするなら、次のように実行します。
docker compose exec -i minecraft rcon-cli time set dayこれだけでゲーム内時間を朝に切り替えられます。
RCONポートをインターネットに公開しない
RCONポートを外部に公開すると、第三者からサーバー停止やOP付与などの管理者コマンドを遠隔実行される重大な危険があります。
この記事のようにコンテナ内部へのdocker compose exec経由で実行し、RCONポートは外部公開しないでください。
Docker ComposeでプラグインとMODを環境変数で導入する

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に置き換えて設定してください。
複数ある場合はカンマで区切って並べる形です。
設定を保存したら、サーバーを作り直して反映します。
docker compose downdocker 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権限が付与されます。
docker compose downdocker compose up -dIDは大文字小文字を区別するため、マイクラで表示されている名前をそのまま使います。
レベル1〜4の違いやdeopでの剥奪は、OP権限の記事で扱います。
ホワイトリストで参加者を制限する
公開サーバーでは、ホワイトリストで許可した人だけ入れるようにします。
WHITELISTにIDを指定するだけで、ホワイトリストは有効です。
WHITELIST: "PlayerName1, PlayerName2"ENABLE_WHITELISTをTRUEにすると、より明示的にオンを示せます。
ENABLE_WHITELIST: "TRUE"サーバーを作り直すと、リスト外のプレイヤーは入れなくなります。
プレイヤーを1人ずつ追加・削除する手順は、ホワイトリストの記事に分けて載せました。
ワールドデータをバックアップ・復元する
Dockerで立てたサーバーは、ワールドデータがminecraft_dataフォルダ1つにまとまっています。
このフォルダをコピーするだけでバックアップは完了です。
バックアップ時は、サーバーを書き込み中にコピーしないよう、一度止めてから行います。
docker compose stopcp -r minecraft_data minecraft_data_backupdocker compose startdocker compose stopはコンテナを残したまま一時停止するため、データは安全な状態でコピーできます。
Dockerの既定では停止猶予時間が10秒のため、ワールドの保存が終わる前に強制終了されないよう、docker-compose.ymlにstop_grace_period: 1mを指定しておくか、停止が完了したことを確認してからコピーします。
復元するときは、バックアップしたフォルダの中身をminecraft_dataに戻して起動し直すだけです。
荒らし被害や操作ミスから戻すときも、この手順で直前の状態に復元できます。
バックアップを毎日自動で取りたい場合は、自動バックアップの記事で手順を紹介しています。
Docker Composeでサーバーを停止・再起動する
起動後によく使うのは、停止、再起動、ログ確認の3つです。
- サーバーを停止する
- サーバーを再起動する
- ログをリアルタイムで確認する
どれもdocker-compose.ymlを置いたフォルダで実行します。
サーバーを停止する
サーバーを止めるときは、次のコマンドを実行します。
docker compose downdocker compose downはコンテナを停止して削除しますが、ホスト側にマウントされたminecraft_dataフォルダ内のワールドデータは保持されます。
サーバーを再起動する
サーバーを一度止めて起動し直したいときは、次のコマンドを使います。
docker compose restartただし、docker-compose.ymlのメモリやポート、環境変数を書き換えたあとは、restartではなく作り直しの流れにします。
設定ファイルを反映し直す場合は、次の2つを順番に実行するのが基本です。
docker compose downdocker compose up -d再起動後に動作状態を見るなら、次のコマンドを使います。
docker compose psステータスがUpなら正常稼働中です。
Exitと表示される場合は、エラーでコンテナが停止しています。
docker compose logs -fを実行して直近のログを確認してください。ログに出たエラー文から原因を絞りたいときは、サーバーが起動しないときのエラー別ガイドで同じエラー文を探すのが早いです。
ログをリアルタイムで確認する
サーバーの動きを流れで追うときは、次のコマンドが便利です。
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つのコマンドさえ押さえれば、サーバーの起動・停止・ログ確認の日常操作は十分に回せます。
黒い画面、間違えたら壊れそうで正直こわいです。
打つのはdocker compose up -d・down・logsの3つが中心で、どれもコピペで済みます。おかしくなったらdownで止めて打ち直せば大丈夫ですよ!
よくある質問
Q`docker compose down`を実行すると、ワールドも消えますか?
通常の`docker compose down`では、ホスト側へマウントしたワールドや名前付きボリュームは残ります。ただし`docker compose down -v`は名前付きボリュームも削除するため、実行前に保存先とバックアップを確認します。
QDocker版のマイクラサーバーは、どう更新すれば安全ですか?
先にデータの保存先をバックアップし、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の細かい仕組みはあとから覚えれば十分です。
サーバーが起動したら、サーバーアドレスを登録してマイクラから入れるか試します。
友達に外から参加してもらうなら、公開方法を決めることも必要です。
ポート開放が難しい場合は、ポート開放なしで公開する方法も検討します。







