🦍
Minecraft Server を Docker で構築する(Official)
コンテナ型仮想環境で、Java版のマインクラフトサーバーを構築します。使用するコンテナイメージは Docker 社が運営する公開レジストリの Docker Hub から取得します。
🛠️ 事前準備
デバイスやソフトウェアは以下を用いる。
- 💻 サーバ機(Ubuntu Server、Docker)
- 🌐 Docker Hub
- 💿 itzg/minecraft-server … Minecraft Server on Docker (Java Edition)
1. Docker のインストール
以下の記事より Docker のインストールを済ませておく。
2. Proxy Server の構築(Velocity)
プロキシを介して接続する場合は中継サーバーを構築しておく。
3. データ格納用ディレクトリの用意
データを永続的に管理するためのディレクトリを用意する。
🖥️ terminal
# データ格納用ディレクトリの作成(存在しない場合)
mkdir -v /media/shared/minecraft
# カレント・ディレクトリの変更
cd /media/shared/minecraft
🎭 作業手順
1. Docker リポジトリのセットアップ
Compose ファイル を編集する。(環境変数は公式ドキュメントを参照)
🖥️ terminal
# Compose ファイルの作成
vi ./compose.yaml
📄 compose.yaml
services:
# =================================================== #
# Vanila Server #
# =================================================== #
vanilla:
container_name: mc_vanilla
image: itzg/minecraft-server
tty: true # ターミナルの割り当て(`-t`オプション)
stdin_open: true # 標準入出力ストリーム(`-i`オプション)
environment:
ENABLE_ROLLING_LOGS: "TRUE"
JVM_OPTS: "-XX:MaxRAMPercentage=75"
#TYPE: "VANILLA"
EULA: "TRUE"
#VERSION: "LATEST"
MOTD: "The World of Vanilla Server"
MAX_PLAYERS: 5
MAX_WORLD_SIZE: 10000
ENABLE_COMMAND_BLOCK: "TRUE"
SNOOPER_ENABLED: "FALSE"
VIEW_DISTANCE: 12
PVP: "FALSE"
LEVEL: "lv25565" # a default is "world"
#ONLINE_MODE: "TRUE"
ALLOW_FLIGHT: "TRUE"
USE_NATIVE_TRANSPORT: "TRUE"
SIMULATION_DISTANCE: ""
STOP_SERVER_ANNOUNCE_DELAY: 60
GUI: "FALSE"
ports:
- "25565:25565/tcp"
- "25565:25565/udp"
volumes:
- ./vanilla:/data
- /etc/timezone:/etc/timezone:ro
restart: unless-stopped
2. Proxy の通信設定
プロキシを介して接続する場合は中継サーバーの設定も編集しておく。
🔧 VanillaCord の導入
コンテナに接続して VanillaCord のパッチを当てる。
🖥️ terminal
# コンテナの構築と起動(バックグラウンド実行)
docker compose up -d vanilla
# コンテナに接続
docker container exec -it mc_vanilla bash
🔦 [root@mc_vanilla] /data#
# VanillaCord を ダウンロード
curl -OL https://dev.me1312.net/jenkins/job/VanillaCord/lastSuccessfulBuild/artifact/artifacts/VanillaCord.jar
# パッチプログラムの作成
java -jar VanillaCord.jar `ls minecraft_* | sed -e "s/^.\{17\}//" | sed 's/\.[^\.]*$//'`
# コンテナを抜ける
exit
🖥️ terminal
# コンテナの停止
docker compose rm -fsv vanilla
⚙️ Config (vanillacord.txt)
🖥️ terminal
# パッチの適用
var=`ls ./vanilla/minecraft_* | sed -e "s/^.\{27\}//" | sed 's/\.[^\.]*$//'`
sudo mv ./vanilla/out/$var.jar ./vanilla/minecraft_server.$var.jar
# データ転送の設定
sed -i "s/forwarding = bungeecord/forwarding = velocity/" ./vanilla/vanillacord.txt
# 秘密鍵を設定する
# secret = "IPパケット転送用の秘密鍵の値"
SECRET=`cat ./velocity/forwarding.secret`
sed -i "s/seecret = /seecret = $SECRET/" ./vanilla/vanillacord.txt
3. Docker コンテナの起動
Compose を使ってアプリケーションを起動する。
🖥️ terminal
# コンテナの構築と起動(バックグラウンド実行)
docker compose up -d vanilla
4. Server の環境設定(RCON)
👥 OP権限
任意のプレイヤーに管理者権限を付与する。
🖥️ terminal
# RCON クライアントの起動
docker exec -i mc_vanilla rcon-cli
# オペレーター権限を付与
op username
# [Control]+[C]キーで RCON を抜ける
⛳️ 動作確認
1. Minecraft Java Edition の起動
PC端末には予め Minecraft Java Edition のインストールを済ませておく。
Minecraft Launcher を起動し、サイドメニューに「MINECRAFT:Java Edition」を選択、ドロップダウンリストに「最新のリリース」を選択して [プレイ]
ボタンを押下する。
2. Minecraft Server への接続
メインメニューより【マルチプレイ】を押下して、サーバーの接続設定と動作確認を行う。
サーバー名 | サーバーアドレス(host:port) |
---|---|
任意の名前 | ホスト名またはIPアドレス:25565 ※プロキシを介して接続する場合は中継サーバーのポートを指定する |
🎬 ① Minecraft Server を追加
-
マルチプレイメニューより【サーバーを追加】を押下する。
-
サーバーアドレス情報を登録し【完了】を押下する。
🎬 ② Minecraft Server に接続
-
一覧から追加した接続先を選び【サーバーに接続】を押下する。
-
世界に接続できることを確認する。
Discussion