Windows環境で手早くDockerを試してみるメモ

| コメントをどうぞ

最近はVagrantやChefをかじっていましたが、世間はどうもDockerで盛り上がっている様子です。

Dockerについての知識は、

「仮想化ソフトウェアの一種?」「コンテナ型?」「速いらしい」

くらいのぼやっとしたものしかありません。さすがにこの知識では恥をかきそうなので、少し調査してみることにします。

とりあえずDocker上で何らかのアプリを動作させることができれば、ある程度理解できるのではないでしょうか。

環境はWindows 7 (64bit)。動作させるアプリはJenkinsとします。

Dockerのインストール

まずは動かしてみる派なので、理屈などは後回しにしてインストールを試みます。

instllationの項目を確認すると、Microsoft Windowsの項目がありました。Linux環境は用意しなくてもよさそうです。

Docker for Windows Installer からダウンロードします。執筆時点での最新は 1.2.0 です。

次に、ダウンロードした docker-install.exe を実行します。

インストールはウィザード形式で進みます。

WS000032

Select Components のところで、 VirtualBox と Msys -Git UNIX tools のチェックを入れる箇所があります。既にインストールされていれば不要です。なければ両方入れておきましょう。

インストール完了後、PCをリブートします。

Boot2Dockerの実行

リブートが完了したら、スタートメニューから Docker -> Boot2Docker Start を実行します。

WS000031

クジラが出た後、コマンド入力が可能になります。

ふと思いついてVirtualBoxマネージャーを見ると、boot2docker-vmというVMが出来ていました。

つまり、Windowsで動作するDockerというわけではなく、Docker入りのVirtualBoxと連携してそれっぽくしているだけのようです。

Docker Hub Registry でDockerイメージを探す

次に、Dockerに乗せるDockerイメージを探します。Dockerイメージは、ベースとなるテンプレートみたいなものです。(イメージ的にはAWSのカスタムAMIに近い、気がする)

Dockerイメージは Docker Hub Registory に大量に公開されています。ubuntuやcentosなどのOSイメージもあれば、nodeやnginxといったアプリケーションが乗っかっているものもあります。

今回は Jenkins のDockerイメージを利用してみます。

Jenkinsを動作させる

以下のコマンドで、JenkinsのDockerイメージのダウンロードと、「myjenkins」という名称のコンテナ(VMイメージのようなもの)を作成し、起動します。

docker run --name myjenkins -p 8080:8080 jenkins

-p のオプションはポートフォワーディングの設定です。

バージョン指定したい場合は jenkins:1.554 のように、コロンの後にタグを指定します。指定可能なタグは Tags で確認できます。

ダウンロード時間込みで2分ほどで起動。

早速アクセスしてみます。

WS000033

無事起動しました。お手軽です。

ここでの注意点は、コンテナにとってのホストは boot2docker-vm であり、Windowsの方ではないということです。ポートフォワーディング設定はboot2docker-vmに対してのものになります。<boot2docker-vmのIP:8080>アクセスしてください。DockerがWindows上で動作していると思い込んでいるとハマります。(私はハマりました)

飽きるまでいじったら、Ctrl+CでJenkinsを止めます。

起動速度を見てみる

イメージのダウンロードやセットアップにかかった時間のおかげで、売りである起動速度が実感できませんでした。なのでコンテナを再起動してみます。

以下のコマンドでmyjenkinsコンテナを起動します。

docker start myjenkins

一瞬でコマンドが返ってきました。コマンド間違ったか?と思いアクセスしてみましたが、ちゃんと起動していました。速いとは聞いていましたが、まさか1秒かからないとは。

ちょっと調べた感じでは、コンテナ型仮想化というのはホストOSとの共通部分を共有しているから高速なのだそうです。DockerがLinuxで動作している以上は、Linux系OSしか動作しないということですね。

おわりに

とりあえずDockerが軽量で高速であることはよくわかりました。まだまだ理解は浅いですが、入りとしてはこんなものでいいのではないでしょうか。

今後は実際にDockerイメージを作ったりしてより理解を深めていこうかなと思います。infoScoopのイメージを作って Docker Hub Registory に登録してみるのもいいかもしれません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>