ここ近年サーバー界隈ではDockerをはじめとしたコンテナ型仮想化が流行っており、様々なサービスの開発やデプロイがしやすくなったと思います。
しかし、他のLinux向けソフトウェアなどもそうなのですが、操作は基本的にコマンドラインから行うと言ったものが主流です。
そのため、初心者の人達からすれば視覚的にわかりにくくなってしまっていたかと思います。
今回紹介するDockercraftは有名なMinecraftというゲーム内からDockerコンテナの起動・停止・削除などが行える、アプリケーションです。
この記事ではDockercraftの使い方などについて説明します。
公式リポジトリ : docker/dockercraft | GitHub
必要なもの
- 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 git@github.com: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です。
無事サーバーが追加されたので、接続してみましょう。
無事接続ができました。
T
で表示できるチャットボックスに/
から始まるコマンドを記述することでコンテナの追加などができます。
試しにRedisサーバーを/docker run redis
を実行して立ててみたいと思います。
Redisのコンテナが立ち上がり、ワールドへ物体が追加されました。
ちなみにわざわざMinecraft内からDockerコンテナを立ち上げず、コマンドラインから立ち上げたコンテナもゲーム内に表示されます。
コンテナの表にはそれぞれコンテナの情報やCPU、メモリの使用率が掲げられています。
コンテナの中にはコンテナの開始と停止(START/STOP)を操作するレバーや、
コンテナを破棄(REMOVE)するためのボタンが存在します。
停止したコンテナは色がオレンジとなり、
コンテナが破棄されると、コンテナはゲームからも消えます。
(注 : Dockercraftのコンテナを破棄しないように注意してください[ゲームから切断される])
この記事では解説しませんが、Dockercraftを実行する際に、オプションを指定することで見た目を変えたりできるそうです。
詳しくは公式リポジトリのREADME.mdを読んでください。
まとめ
あまり使い道は多くないかも知れませんが、こう言ったものは視覚的にも動作がわかりやすいので、コマンドラインと組み合わせて教育向けに使用してみるとなかなか面白いかも知れません。
ぜひ皆さんもDockercraftを触ってみてください。
コンテナ・ベース・オーケストレーション Docker/Kubernetesで作るクラウド時代のシステム基盤
コメント