Minecraft内からDockerを操作するDockercraftを使ってみた

2019年9月29日Docker,Minecraft,TECHNOLOGY,ゲームサーバー,サーバー,仮想化

ここ近年サーバー界隈ではDockerをはじめとしたコンテナ型仮想化が流行っており、様々なサービスの開発やデプロイがしやすくなったと思います。

しかし、他のLinux向けソフトウェアなどもそうなのですが、操作は基本的にコマンドラインから行うと言ったものが主流です。
そのため、初心者の人達からすれば視覚的にわかりにくくなってしまっていたかと思います。

今回紹介するDockercraftは有名なMinecraftというゲーム内からDockerコンテナの起動・停止・削除などが行える、アプリケーションです。
この記事ではDockercraftの使い方などについて説明します。

公式リポジトリ : docker/dockercraft | GitHub

 

 

必要なもの

Screen Shot 2019-09-29 at 17.45.27

  • Minecraft (PC版公式クライアント)
    (バージョンは1.8.x, 1.9.x, 1.10.x, 1.11.x, 1.12.xのいずれかである必要があります)
  • Dockerがインストールされたマシン

注 : Dockercraftはローカルのみで動かすようにしてください。
(インターネットで公開すると、接続した全てのプレイヤーがroot権限でコマンド実行できてしまいます)

 

 

使い方

基本的な動作は一つのDockerコンテナでMinecraftサーバーが立ち上がり、そこにアクセスする形です。

 

1. Dockerイメージのpullもしくはビルド

# docker pull gaetan/dockercraft

でPullしたイメージを使用するか、

# git clone [email protected]:docker/dockercraft.git
# docker build -t gaetan/dockercraft dockercraft

でビルドできます。

 

2. Dockercraftコンテナの実行

# docker run -t -i -d -p 25565:25565
-v /var/run/docker.sock:/var/run/docker.sock
--name dockercraft
gaetan/dockercraft

コマンドのオプションとしては-v/var/run/docker.sockをコンテナ内にマウントしています。これによってコンテナ内からホスト側のDockerがどんな状況かを取得できます。
また、-pで指定されている25565ポートはMinecraftサーバーの標準ポートです。これをフォワードすることでMinecraftのクライアントから接続できるようにしてます。

 

3. Minecraftからサーバーへ接続

これで準備は完了です!

Minecraftを起動して、タイトルの「マルチプレイ」を選択し、「サーバーを追加」からサーバーを追加します。

サーバーアドレスには127.0.0.1を入力して完了を押せばOKです。

 

Screen Shot 2019-09-29 at 18.10.19

無事サーバーが追加されたので、接続してみましょう。

 

Screen Shot 2019-09-29 at 18.11.28

無事接続ができました。

Tで表示できるチャットボックスに/から始まるコマンドを記述することでコンテナの追加などができます。

試しにRedisサーバーを/docker run redisを実行して立ててみたいと思います。

 

Screen Shot 2019-09-29 at 18.15.08

Redisのコンテナが立ち上がり、ワールドへ物体が追加されました。

 

Screen Shot 2019-09-29 at 18.18.23

ちなみにわざわざMinecraft内からDockerコンテナを立ち上げず、コマンドラインから立ち上げたコンテナもゲーム内に表示されます。

 

Screen Shot 2019-09-29 at 18.20.36

コンテナの表にはそれぞれコンテナの情報やCPU、メモリの使用率が掲げられています。

 

Screen Shot 2019-09-29 at 18.22.44

コンテナの中にはコンテナの開始と停止(START/STOP)を操作するレバーや、

 

Screen Shot 2019-09-29 at 18.24.09

コンテナを破棄(REMOVE)するためのボタンが存在します。

 

Screen Shot 2019-09-29 at 18.25.22

停止したコンテナは色がオレンジとなり、

 

Screen Shot 2019-09-29 at 18.26.27

コンテナが破棄されると、コンテナはゲームからも消えます。

(注 : Dockercraftのコンテナを破棄しないように注意してください[ゲームから切断される])

 

この記事では解説しませんが、Dockercraftを実行する際に、オプションを指定することで見た目を変えたりできるそうです。
詳しくは公式リポジトリのREADME.mdを読んでください。

 

 

まとめ

dockercraft

あまり使い道は多くないかも知れませんが、こう言ったものは視覚的にも動作がわかりやすいので、コマンドラインと組み合わせて教育向けに使用してみるとなかなか面白いかも知れません。

ぜひ皆さんもDockercraftを触ってみてください。

 

Docker

Docker

Adrian Mouat
3,960円(04/20 13:07時点)
Amazonの情報を掲載しています
コンテナ・ベース・オーケストレーション Docker/Kubernetesで作るクラウド時代のシステム基盤

コンテナ・ベース・オーケストレーション Docker/Kubernetesで作るクラウド時代のシステム基盤

橋本 直哉, 須江 信洋, 前佛 雅人, 境川 章一郎, 佐藤 聖規, 山田 修司, 青山 尚暉, 市川 豊, 平岡 大祐, 福田 潔, 矢野 哲朗
3,699円(04/20 13:07時点)
Amazonの情報を掲載しています
Minecraftで楽しく学べる Pythonプログラミング

Minecraftで楽しく学べる Pythonプログラミング

齋藤 大輔
7,674円(04/20 13:07時点)
Amazonの情報を掲載しています