経済サバイバルサーバー、参加者募集中

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

サーバーの設定

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

Docker Composeでマイクラサーバーを一発起動するサムネイル
  • JavaやPaperMCを手作業で入れるのが面倒...
  • docker-compose.ymlに何を書けばいいのかわからない
  • コンテナを消したらワールドまで消えそうで怖い...
  • プラグインやOP権限の設定も、環境構築のたびに詰まりたくない

Dockerでマイクラサーバーを立てるとき、最初に手が止まるのはdocker-compose.ymlの書き方です。

サーバーソフト、メモリ、ワールドデータの保存先を、この1つのファイルにまとめて決めます。

僕も最初は、Javaの準備やサーバーファイルの配置で手が止まり、環境構築だけで半日潰したことがあります。

黒い画面にコマンドを打つのは構えるかもしれませんが、この記事で使うコマンドは起動、停止、ログ確認の3つだけです。

まずはこの記事のdocker-compose.ymlを貼り付けて、起動までを済ませます。

そこから先の設定も、プラグイン・MOD・OP権限・ホワイトリストはすべてdocker-compose.ymlの設定欄(環境変数)に1行追記するだけです。

メモリを変えたくなったら同じファイルの1行を書き換え、別PCへ移すときもファイルごと持っていけば同じ環境が動きます。

補足

本記事はJava版のPaperMCサーバーを前提にします。

統合版(Bedrock)やJava版・統合版のクロスプレイをしたい場合は手順が異なります。別記事で紹介しています。

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

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

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

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

設定をdocker-compose.ymlにまとめておくと、あとからメモリやバージョンを変えるときもこのファイル1本で済み、別PCへ移すときもファイルごと持っていけます。

今回はPaperMCサーバー、メモリ2GB、標準ポート25565、ワールドデータの保存先をまとめて指定します。

あとからメモリやバージョンを変えるときも、直す場所はこのファイルだけです。

Javaを入れ直したり、サーバーファイルを探し直したりするより、どこを直せばいいかがはっきりします。

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

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

項目バージョン
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を切断してログインし直します。

gpasswdで追加したDockerグループが、今開いているターミナルにまだ反映されていない可能性があります。

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

Ubuntuのターミナル画面で、Docker Composeコマンドを入力している黒い背景のコンソール画面

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

  • docker-compose.ymlを作成する
  • Dockerコンテナを起動する
  • マイクラから接続して動作確認する

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

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

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

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

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

services:
minecraft:
image: itzg/minecraft-server:latest
container_name: papermc-server
restart: unless-stopped
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で立てるときに一番不安なのは、コンテナを消したらワールドも消えるのではないかという点です。

今回の設定ファイルでは、ワールドデータの保存先がminecraft_dataフォルダです。

コンテナを削除しても、このフォルダが残っていれば同じワールドで続きから遊べます。

サーバー用の作業フォルダを作り、その中に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を入力します。

マイクラ側の操作手順は、接続方法の記事で画面付きで解説しています。

マイクラサーバー参加のIP入力手順を示すサムネイル

マイクラサーバーに入る方法!IPアドレスの入力場所を3ステップ解説

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

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

docker-compose.yml25565:25565を指定していても、家の外から入るにはルーター側でも25565番ポートを開けます。

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用ポートをインターネットに公開するのは危険です。

この記事の手順では、RCON用ポートは公開しません。

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

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

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

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

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

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

プラグインを導入する

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

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

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

URLは例です。

配布元の実際のjarダウンロードURLに置き換えます。

プラグインごとに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を例にしています。

Sodiumのような描画最適化MODはクライアント専用のため、サーバーには入れません。

補足

Fabricでは多くのMODがFabric APIを別途必要とします。

Fabric APIのjarもMODSに一緒に指定します。

URLは配布元の実際のダウンロードURLに置き換えます。

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

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

ForgeやFabricでMODサーバーを立てる手順と注意点

マイクラMODサーバーの立て方!Forge・Fabricで友達と遊ぶ手順

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

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

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

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

OP権限を付与する

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

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

OPS: "PlayerName1, PlayerName2"

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

Terminal window
docker compose down
docker compose up -d

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

OP権限の細かいレベルや剥奪方法は、OP権限の記事で解説しています。

マイクラサーバーのOP権限を付与・剥奪して管理者権限を扱う方法

マイクラのOP権限とは?付与・剥奪・権限レベルをJava版中心に解説

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

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

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

WHITELIST: "PlayerName1, PlayerName2"

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

ENABLE_WHITELIST: "TRUE"

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

ホワイトリストの追加・削除の細かい手順は、ホワイトリストの記事にまとめています。

マイクラサーバーのホワイトリストで参加できるプレイヤーを追加・削除する方法

マイクラサーバーのホワイトリスト設定方法|追加・削除・確認手順

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

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

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

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

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

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

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

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

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

マイクラサーバーのバックアップ復元を示すサムネイル

【マイクラ】サーバーのバックアップ方法!復元・自動化・保存先まで初心者向けに解説

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

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

サーバーを停止する

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

Terminal window
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.ymlminecraft_dataしか残りません。

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

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

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

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

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

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

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

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

メモリの目安を人数別に知りたい場合は、メモリ割り当ての記事にまとめています。

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

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

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

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

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

Docker Composeは設定をファイルで残せる反面、クリック操作だけで完結する方法ではありません。

最低限、次の2つには慣れておく必要があります。

  • Dockerの基礎知識が必要
  • 画面に文字を打って操作するコマンドの使い方を知っている必要がある

ただし、仕組みをすべて理解しなくても動かせる点は安心です。

この記事の範囲では、起動、停止、ログ確認の3つのコマンドだけ押さえれば作業は進みます。

Dockerの基礎知識が必要

Dockerの仕組みを深く理解していなくても、この記事の手順は進められます。

この記事では、次の3つだけ先に押さえます。

  • docker compose up -dは、サーバーを裏側で起動する
  • docker compose downは、コンテナを止めて削除する
  • docker compose logsは、サーバーの起動ログを見る

僕も最初はDockerの知識がほとんどない状態でしたが、この3つを触るだけなら思ったより早く慣れました。

ターミナル操作が必要になる

マウス操作に慣れている方だと、黒い画面にコマンドを打つだけで少し構えてしまうかもしれません。

今回の構築で使うコマンドは限られています。

docker compose up -ddocker compose down、ログ確認、必要なときのrcon-cliまでわかれば、この記事のサーバー運営は回せます。

一度覚えると、別のマイクラサーバーを立てるときにも同じ形が通用します。

よくある質問

Q

docker compose up -dを実行してもサーバーに入れない

A

初回起動は1〜2分かかります。docker compose logs --tail=20でログを開き、Doneが出るまで待ちます。自宅PCで立てたサーバーへ友達に外から入ってもらう場合は、ルーターのポート開放も必要です。

Q

コンテナを削除したらワールドが消えますか?

A

消えません。データはminecraft_dataフォルダに保存されているため、docker compose downでコンテナを削除しても残ります。docker compose up -dで再起動すれば、同じワールドで続きから遊べます。

Q

プラグインやMODはどうやって入れますか?

A

docker-compose.ymlの環境変数にPLUGINS(プラグイン用)またはMODS(MOD用)の配布URLを指定します。配布サイトにある直接ダウンロードURLを貼ります。PaperではPLUGINS、FabricやForgeではMODSを使い分けます。設定後にdocker compose down && docker compose up -dでサーバーを作り直すと、起動時に自動配置されます。

Q

メモリをもっと増やしたい

A

docker-compose.ymlのMEMORYを変更します。4GBに増やす場合はMEMORY: "4G"と書き換え、docker compose down && docker compose up -dでサーバーを再起動すれば反映されます。

Q

バックアップはどう取ればいいですか?

A

docker compose stopでサーバーを止めてから、minecraft_dataフォルダをコピーします。復元はコピーした中身をminecraft_dataに戻すだけです。自動化したい場合は自動バックアップの記事で手順を紹介しています。

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

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

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

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

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

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

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

サーバーが起動したら、接続方法の記事を見ながらサーバーアドレスを登録し、マイクラから入れるか試します。

友達に外から参加してもらうなら、公開方法も決める必要があります。

ポート開放が難しい場合は、ポート開放なしで公開する方法から試すほうが進めやすいです。

ポート開放なしで公開する代替方法を示すサムネイル

マイクラサーバーのポート開放ができない原因と対処法!開放なしで立てる方法も解説

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

サーバーの構築と運用を繰り返して4年。その経験をもとに記事60本以上を執筆。

プロフィール詳細 →