こんにちは、SI部の宮内です。 今回は次世代仮想化技術として注目を集めているDockerについて その概用をおさえつつ、コンテナ作成の流れを体感していきたいと思います。
Dockerとは
Dockerとは社Docker社(旧dotCloud)が開発するオープンソースのコンテナ管理ソフトウェアの1つです。 2013年3月20日に最初のバージョンがリリースされ、先日には初の正式版Docker 1.0がリリースされました。
現在Red Hat、Google、AWSなど数多くの企業がDockerをサポートしています。
Dockerには以下のような特徴があります
•ホストOS上にコンテナの形で仮想化を実現する
•ゲストOSがなくLinuxのカーネルを共有するためビルド、デプロイが高速でオーバーヘッドが小さい
•アプリケーションをコンテナにパッケージングしデプロイ、実行できる
•開発者環境でビルドしたDockerコンテナをそのまま本番環境で実行可能
•運用者はコンテナの外部だけを管理
•Dockerfileと呼ばれる仕組みでインフラストラクチャーをソースコードで管理可能
•AUFS(親コンテナからの差分のみを保存していく)
DockerでRedmineの環境を構築する
今回はVagrantで構築したUbuntuにDockerをインストールし、Redmineイメージを取得、イメージからコンテナを作成、起動しRedmineの環境を構築することで、Dockerを体感してみたいと思います。
なお、本記事はVagrant、VirtualBoxはインストール済みであることを前提とします。それらのインストールに関しては他のサイトをご参考ください。
環境
今回は以下の環境で実施しました
Mac OS X 10.9.2
VirtualBox 4.3.12
Vagrant 1.6.3
Box:Ubuntu Trusty 14.01(LTS)(64-bit)
Docker 1.0.1
VagrantでUbuntuの環境を用意する
ubuntuのboxイメージ取得
今回はtrustyを利用します。
フォルタの作成と初期化
Docker用のフォルダを作成して(任意の場所に)初期化を実施します。
cd docker
vagrant init trusty64
Vagrantfileの編集
初期化によりカレントディレクトリにVagrantFileが作成されるので続いて、ポートフォワーディングを設定します。
config.vm.networkのコメントアウトをはずし編集します。
Ubuntuを起動、接続
vagrant ssh
Dockerをインストールする
続いて、UbuntuにDockerをインストールしていきましょう。
リポジトリの登録
–recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
>/etc/apt/sources.list.d/docker.list”
インストール
sudo apt-get install lxc-docker
バージョン確認
ここでDockerのバージョンを確認してみましょう。
以下のようにClientとServerのバージョンが表示されることを確認してください。
Redmineのイメージ取得
つづいてRedmineのイメージを取得します。 今回はこちらで配布されているもの利用させていただきました。
※環境によっては数十分かかるかと思います。
イメージを確認
pullしてきたイメージを確認します。
REPOSITORY sameersbn/redmineが表示されることを確認してください。
初期設定
つづいてredmineの初期設定を実施していきます。
sudo mkdir /opt/redmine/mysql
コンテナを作成、実行
さて、いよいよコンテナ作成し起動してみましょう。以下のコマンドを実行してください。
-v /opt/redmine/files:/redmine/files \
-v /opt/redmine/mysql:/var/lib/mysql
sameersbn/redmine:latest
起動オプションはそれぞれ下記を表しています。
– d バックグラウンドで実行
-p ポートフォワーディングの設定(hostPort:containerPort)
-v ボリュームをマウントする
※今回は設定を簡略化するために内部のMySQLServerを利用しています。実際にはDBを別コンテナに分割するか外部のサーバを利用することが奨励されています。
詳細はこちらをご確認ください。
コンテナを確認
コンテナが起動されたか確認してみましょう。以下のコマンドで起動中のコンテナ一覧を確認します。
先ほど作成したコンテナが表示されます、またここでCONTAINER IDが表示されていることにも注目してください。
ブラウザから確認
以下のURLでアクセスしてみましょう。
下記のようにRedmineのログイン画面が表示されたら成功です。
コンテナの停止、再実行、削除
最後に、停止と再実行を実施してきたいともいます。それぞれCONTAINER IDを指定し実施します コンテナを停止
コンテナを再起動
まとめ
今回はDockerでイメージの取得しコンテナ作成、起動することを実施しました。 DockerではDockerfileを作成することでベースとなるイメージをもとにカスタマイズしたイメージ作成することが可能です。興味がある方は是非トライしてみてください。