たくのろじぃのメモ部屋

プログラミング関係や数学などの内容を備忘録として残すブログ。プログラミングはC#を中心に書いています。

【Minecraft】dockerを用いたMinecraftサーバの構築 #1

はじめに

Minecraftは結構有名なゲームでyoutubeにも多数実況動画などがあります。内部的な実況は実況者に任せて、私「たくのろじぃ」は技術的な部分を実況(ではなく紹介)したいと思います。

今回はdockerというコンテナツールを用いてMinecraftサーバを構築したいと思います。立ち上げるだけでも結構面倒だったのでメモがてら残しておきます。

お品書き

  1. dockerのセットアップ
  2. Minecraft用イメージの導入
  3. Minecraftの起動

実行環境

  • Windows10 Pro 1803 (Build 17134.950)
  • docker for Windows Desktop 19.03.1, build 74b1e89

1. dockerのセットアップ

dockerはコンテナツールです。詳しくはquitaなどを調べれば丁寧に教えてくれると思います。ここでは省略します。

まずはdockerをダウンロードして手順通りにセットアップしていきます。アカウント登録(無料)が必要なので、登録しておいてください。英語はしっかり読みながら進めましょう。Docker Desktop for Windows をダウンロードしてください。

docs.docker.com

2. Minecraft用イメージの導入

イメージはここから入手できます。誰かが作ってくださっているので、新しく作る必要はないです。ありがたいですね。

hub.docker.com

イメージといってもdockerとMinecraft本体をつなげるためのツールなので、ワールドは特に設定されていません。

セットアップできたらpullします。コマンドラインを用いて作業します。

docker pull itzg/minecraft-server

できたら試しにサーバを起動してみます。

docker run -e EULA=TRUE -p 25565:25565 itzg/minecraft-server:latest

これでMinecraftサーバの初期化が始まります。途中に最新バージョンをダウンロードしている文字列が表示されるので、それに合わせてMinecraftのアプリケーションを立ち上げます。このようなRCONの表示が出れば構築完了です。

f:id:takunology:20190823020456p:plain

3. Minecraftの起動

イクラのほうでサーバを追加します。サーバ名は適当で、アドレスはローカルアドレスを用います。

f:id:takunology:20190823021537p:plain

f:id:takunology:20190823021616p:plain

こんな感じにサーバが表示されると思います。後は接続してスポーン先を確認しておきます。 無事に起動できるとログが残ります。

f:id:takunology:20190823021843p:plain

これがdockerを使ったMinecraftサーバの構築方法です。 ちなみに、コマンドで一旦 Ctrl + C で停止させてもdocker自体は実行しているので、サーバは起動したままです。完全に止めるにはdockerのコンテナ名を直接指定して止める必要がります。

> docker ps
CONTAINER ID        IMAGE                          COMMAND             CREATED             STATUS                    PORTS                                 NAMES
c08e238a2cf1        itzg/minecraft-server:latest   "/start"            18 minutes ago      Up 18 minutes (healthy)   0.0.0.0:25565->25565/tcp, 25575/tcp   goofy_fermi

どうやら goofy_fermi というのがコンテナ名ですね。これを停止するには

docker stop goofy_fermi

と入力すれば停止します。

おわりに

しかし、これで終わりではありません。あくまでも最新版かつローカルで構築しただけです。これを外部と接続、バージョンの変更、Modの導入、さらにC#を使った自動化までを行っていきたいと思います。

うーん、長そう...