Dockerであそぶ(1)DockerToolboxのインストール


ここ1,2年で注目を集めている仮想化技術の1つ「Docker」について、今更感がありますが試していきたいと思います。
他の仮想化技術との違いや特徴、開発環境として使っていくにはどうすればいいかなどを紹介していきたいと考えています。

これまでの連載

Docker(ドッカー)とは

まず、Docker(ドッカー)とはなんぞやというところから。

ソフトウェアコンテナ内のアプリケーションのデプロイメントを自動化するオープンソースソフトウェアである
wikipediaより

コンテナとデプロイメントというところがポイントでしょうか。
Dockerは他の仮想化技術(VMware、Hyper-V、Xenなどなど)と最も大きな違いとしては、ゲストOSをLinuxカーネルのコンテナという技術を用いてラッピングし、ホスト側の1プロセスとして動作させるところにあります。このコンテナは特に新しい技術ではなく以前から存在していたものです。
他の仮想化技術とは大きく異なる特徴として、基本的に「コンテナ(ゲストOS)の状態を維持できない」という点があります。コンテナを停止させるとそれまで作業していた情報は全てコンテナを起動する前の状態まで戻ってしまいます。
これは間違った操作をしたり、サーバーの設定を試しに変えてみるなどの操作をしたときにすぐ元に戻せるという利点がある一方で、ちゃんと都度状態を保存するという命令を出しておかないとこれまでの操作が水の泡になってしまうという欠点も併せ持っています。

また、このLinuxカーネルのコンテナという仕組みのおかげで既存の完全仮想化タイプのものに比べ高いパフォーマンス(コンテナの起動・停止なども含む)とディスク容量の節約が可能となっています。
以前は開発環境をそれぞれのメンバーで構築していましたが、メンバー間での環境の違いがよく問題になっていました。その1つの回答として仮想環境を使用したり、Vagrantを使用したりということで解決することができました。ただ、Vagrantのような仮想環境の場合はそれぞれの開発プロジェクト毎にゲストOSが必要になり、数個であれば問題ありませんがゲストOSの数が増えてくるとディスク容量もばかにならなくなってしまうという問題がありました。
その点Dockerであれば、ディスク容量がVagrantの時と比べ圧倒的に少ないため、このような問題は発生しにくくなります。

もう一つのポイントである「デプロイメント」に関しては今後紹介していきたいと思います。

環境の確認

Dockerを使うためにはローカルマシンがHardware Virtualization Technologyをサポートしている必要があります。
Windows8以降であれば、タスクマネージャーの「パフォーマンス」タブから確認することができます。

スクリーンショット 2015-11-13 14.44.59

DockerToolboxのインストール

では、ローカルマシン(Windows)にDockerをインストールして行きたいと思います。
前述したとおりDockerを使うためにはLinux環境やシェル環境が必須です。そのためDockerToolboxというWindows上にDockerがインストールされているLinuxの仮想環境を構築し、さらにその他の必要ツールも全てインストールしてくれるオールインワンパックが用意されています。

以前は「boot2docker」という名前だったのですが、2015年8月12日に新しく「DockerToolbox」として生まれ変わりました。このDockerToolboxに含まれるソフトは以下の4つです。

  • Docker Client for Windows
  • Docker Toolbox management tool and ISO
  • Oracle VM VirtualBox
  • Git MSYS-git UNIX tools

ダウンロードは↓こちらから
https://www.docker.com/docker-toolbox

VirtualBoxがすでにインストール済みであれば、以下の画面でチェックを外しておきましょう。
スクリーンショット 2015-11-13 13.39.53

インストールが無事完了していれば、スタートメニューに「Docker Quickstart Terminal」というメニューがあるはずです。
スクリーンショット (1)

起動すると以下の様な画面が表示されます。
スクリーンショット 2015-11-13 13.47.56

Docker版 Hello World

では、まずは「Hello World」から行きましょう。
以下のコマンドを入力してください。

$ docker run hello-world

以下の様な実行結果となればOKです。

sudoy@SUDOY-NOTE MINGW64 ~
$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world

b901d36b6f2f: Pull complete
0a6ba66e537a: Pull complete
Digest: sha256:8be990ef2aeb16dbcb9271ddfe2610fa6658d13f6dfb8bc72074cc1ca36966a7
Status: Downloaded newer image for hello-world:latest

Hello from Docker.
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker Hub account:
 https://hub.docker.com

For more examples and ideas, visit:
 https://docs.docker.com/userguide/

少し長くなってしまいましたので、今回はここまでにしたいと思います。

  • このエントリーをはてなブックマークに追加

PAGE TOP