2015年3月29日日曜日

マインクラフトサーバーをDockerで起動する

Dockerを勉強し始めたので、前回稼働させていたマインクラフトのサーバーをDockerで動かしてみようと思います。環境はvagrant上に作ったubuntu14.04の仮想マシンをホストとして、dockerイメージの作成をしていきます。

vagrant上のユーザー名はvagrantとしています。

# dockerのインストール
sudo apt-get update
sudo apt-get install docker.io

# dockerグループにvagrantユーザーを追加する
# dockerグループに追加したユーザーはsudoをつけなくてもdockerコマンドが使えるようになります。
# (設定したら一旦ログインし直さないと反映されない)
sudo gpasswd -a vagrant docker

# マインクラフトを動かすコンテナはcentos6.6のイメージをベースに使うことにします。
docker pull centos:centos6.6


マインクラフトの動作環境イメージを作成する為、Dockerfileを作成していきます。
mkdir -p ~/docker/minecraft
cd ~/docker/minecraft

# Dockerfileを作成
vi Dockerfile
----------------------------------------------
FROM centos:centos6.6
MAINTAINER tyabuta

# インストール作業(docker build時に実行される内容)
RUN yum update -y
RUN yum install -y java-1.8.0-openjdk.x86_64
RUN mkdir /minecraft.d

# 起動(docker run時に実行される内容)
WORKDIR /minecraft.d
CMD java -jar minecraft_server.1.8.3.jar nogui
----------------------------------------------

minecraft_serverのjarファイルを入れたディレクトリはdockerのホスト
/var/minecraft.d というディレクトリに配置し、コンテナ起動時にマウントさせます。

Dockerfileをもとにイメージをビルドします。
ビルドが完了するとminecraft_centosというイメージが作成されているはずです。(docker imagesで確認できる)
cd ~/docker/minecraft
docker build -t minecraft_centos .

あとは、dockerホストの/var/minecraft.dディレクトリをコンテナへマウントしてデーモン起動させればOKです!
起動したらdocker ps で動作しているのがわかると思います。
終了させるのは docker kill [ContainerId] で終了させられます。
docker run -d -v /var/minecraft.d:/minecraft.d -p 25565:25565 minecraft_centos






0 件のコメント:

コメントを投稿