Minecraftのサーバー構築や運用って結構手間がかかってめんどくさいですよね。
今回は簡単にMinecraftのサーバーを立ち上げるためにDockerを使って、Minecraftを簡単に構築する方法を紹介します。
今回取り上げる内容
- Docker Hub上に存在するイメージを使用
- データ類は物理マシン内に保存
といった内容でサーバーを構築する手順について解説します。
Docker for Windowsの方は一部読み替えてください。
前提条件
- Dockerがマシンにインストールされている。
- Dockerの基本的な操作(pull, run等)がわかる。
- TCPの25565ポートがサーバーを動作させるマシンで利用可能なこと。
手順
イメージのpull
今回はDocker Hubにあるitzg/minecraft-serverを利用します。
# docker pull itzg/minecraft-server
ホストマシンの設定
今回はマップのデータなどを永続化するために/var/mc_data/を作成し、そこにデータが保存されるようにします。
# mkdir /var/mc_data/
パーミッションはDocker側から操作できるように設定してあげてください。
コンテナ実行
以下のコマンドで永続化されたコンテナを作成し、起動します。
# docker run -d -e EULA=TRUE -p 25565:25565 -v /var/mc_data:/data --name minecraft --restart always itzg/minecraft-server
オプション解説
-d デタッチモード、コンソールにテキストを出力しない。
-e EULA=TRUE マインクラフトサーバーのEULA(ソフトウェア利用許諾)に同意する。
-p ポートフォワーディング、仮想マシンのポートをホストマシンのポートに割り当てる (マインクラフトは25565ポートを使う)
-v ホストマシンのディレクトリを仮想マシン内のディレクトリに割り当て。 (今回の設定だと、仮想マシンの/dataに書き込まれたデータはホストマシンの/var/mc_dataに書き込まれる)
--name コンテナに名前をつける。 今回はminecraft
--restart コンテナの再起動方法。 alwaysだとホストマシンの再起動とかしてもDockerのデーモンが立ち上がれば、勝手にコンテナが起動してくれる。
itzg/minecraft-server 実行するDockerイメージ
接続
マインクラフトから、ホストマシンのIPアドレスに接続することで接続できます。
同一マシンなら127.0.0.1で接続できます。
管理
RCON
Dockerを動かしているターミナルから以下のコマンドでRCONログインできます。
# docker exec -i minecraft rcon-cli
終了する際は普段通り、Ctrl + Cで大丈夫です。
また、rconで使用されるポート(25575)は今回外部に公開されていないのでセキュリティ的には問題ないと思います。
server.propertiesやops.jsonの変更
今回の場合だと、minecraftサーバーのデータは全てホストマシンの/var/mc_dataに格納されるため、そこにあるserver.propertiesなどを編集することで変更できます。
変更を適用するときは以下のように一回コンテナを破棄してからまた立ち上げてください。
# docker stop minecraft# docker rm minecraft# docker run -d -e EULA=TRUE -p 25565:25565 -v /var/mc_data:/data --name minecraft --restart always itzg/minecraft-server
バージョンアップ
バージョンアップをする場合はDockerイメージを消して再度プルし、-e FORCE_REDOWNLOAD=true をつけてdocker runすることでバージョンアップできます。
# docker stop minecraft# docker rm minecraft# docker rmi itzg/minecraft-server# docker pull itzg/minecraft-server# docker run -d -e EULA=TRUE -e FORCE_REDOWNLOAD=true -p 25565:25565 -v /var/mc_data:/data --name minecraft --restart always itzg/minecraft-server
サーバーバージョン指定
サーバー起動時に-e VERSION=1.7.9や-e VERSION=SNAPSHOT、-e VERSION=LATESTなどを指定することで指定されたバージョンのサーバーを実行できます。
その他
他にもForgeやBukkit/SpigotなどのMODサーバーを動かすこともできるそうです。
詳細は公式ドキュメント(https://hub.docker.com/r/itzg/minecraft-server)を読んでみてください。
終わりに
今回はDockerを使ってMinecraftサーバーを簡単に立てる方法をご紹介しました。
これでMinecraftサーバーも気軽に立てることができるようになったかと思います。
皆さんもこの記事を参考にサーバーを建ててみてはいかがでしょう。
ではでは。


たかなし
mc_data内のserver.propertiesを編集し、コンテナ破棄からリスタートいたしましたが、反映されることはありませんでした。