2026.05.25

サーバーの設定

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

Dockerとマイクラサーバーを組み合わせたイメージ図。コンテナでマイクラサーバーを構築する概念を示したイラスト
  • JavaやPaperMCを手作業で入れるのが面倒…
  • docker-compose.ymlに何を書けばいいのか分からない
  • コンテナを消したらワールドまで消えそうで怖い…
  • あとからメモリやバージョンを変えるたびに、また環境構築で詰まりたくない

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

どのサーバーソフトを使うか、メモリを何GBにするか、ワールドデータをどこに保存するかを、このファイルで決めます。

僕も最初は、Dockerより普通にサーバーを立てるほうが作業を想像しやすいと思っていました。

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

この記事では、コピペ用のdocker-compose.ymlでPaperMCサーバーを起動します。

ワールドデータを残す設定を書き、最後にマイクラから入れるか試します。

この記事のゴールは、サーバーを立てるだけではありません。

一度作ったdocker-compose.ymlを使って、起動、停止、再起動、メモリ変更、ワールドデータの保存先まで同じ場所で管理できる状態にすることです。

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

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

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

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

今回の設定では、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にする
  • 難易度はノーマルにする

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

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

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」を入力します。

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

マイクラサーバー参加方法ガイドを表すイラスト。サーバーアドレス入力とマルチプレイ接続の概念を示した画像

【Java版】マイクラサーバーに入る方法を3ステップで徹底解説!

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

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

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

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

ポート開放なしで公開したい場合は、別記事の方法を使うほうが早いです。

ポート開放不要のマイクラサーバー構築方法を示すイメージ図。ルーターとPlayit.ggなどの公開ツールの接続概念を示したイラスト

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

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

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

rcon-cliは、コンテナの外からサーバーへコマンドを渡すためのツールです。

Terminal window
docker compose exec -i minecraft rcon-cli

通常のサーバーコンソールに直接入力する形とは少し違い、Dockerコンテナの中へコマンドを渡します。

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

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

これでゲーム内時間が朝7時になります。

RCONを使うときの注意点

RCONを使うとサーバー内コマンドを送れますが、ポートをインターネットに公開するのは危険です。

この記事の設定例では、外部からRCONへ入る使い方は扱いません。

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

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.ymlに寄せられます。

  • 設定ファイルだけで構築できる
  • メモリやバージョンの変更場所を1つに絞れる
  • データの保存先を追いやすい
  • テスト用サーバーを分けやすい

初心者が特に助かるのは、次の4点です。

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

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

Javaのバージョン管理やサーバーファイルの置き場所で迷いにくくなります。

マイクラサーバーを直立てすると、Javaのバージョン管理やサーバーファイルの保存場所が増えて、あとから整理しにくくなります。

Dockerならコンテナの中で完結するので、ホストPCはスッキリしたままです。

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

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

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

設定を変える場所が1つに寄るので、「どのファイルを触ればいいのか」で迷いにくくなります。

テスト用サーバーを分けやすい

Dockerなら、ポート番号とデータフォルダを分けて複数のサーバーを管理しやすくなります。

たとえば、本番用は25565番ポート、テスト用は25566番ポートのように分けます。

データフォルダもminecraft_dataminecraft_test_dataのように分ければ、ワールドが混ざりません。

プラグインの検証やワールドのテストを、本番サーバーから切り離せます。

データの保存先を追いやすい

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

ボリュームマウントの概念、最初は「なんだこれ」って感じですよね。

僕も最初は「フォルダ指定するだけで保存されるの?」と疑っていました。

実際にコンテナを削除して再作成しても、ワールドはそのまま残りました。

バックアップを取るときも、minecraft_dataフォルダをコピーすれば対象がはっきりします。

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

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

A

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

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

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

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

ただ、Docker Composeで残るメリットは「一度立てて終わり」ではありません。

設定ファイルを残しておくことで、あとから次の作業がやりやすくなります。

  • メモリを増やすときは、MEMORYを書き換える
  • バージョンを固定するときは、VERSIONを書き換える
  • ワールドを残したいときは、minecraft_dataフォルダを見る
  • テスト用サーバーを作るときは、ポート番号とデータフォルダを分ける

まずは、docker compose up -dで起動し、ログに「Done」が出るかを見てください。

そこまで進めば、Dockerの細かい仕組みはあとから覚えても間に合います。

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

マイクラサーバー参加方法ガイドを表すイラスト。サーバーアドレス入力とマルチプレイ接続の概念を示した画像

【Java版】マイクラサーバーに入る方法を3ステップで徹底解説!

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

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

ポート開放不要のマイクラサーバー構築方法を示すイメージ図。ルーターとPlayit.ggなどの公開ツールの接続概念を示したイラスト

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

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

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

プロフィール詳細 →