2014年から急速に注目度が増しているコンテナー型仮想化技術「Docker」。すでに多くのLinuxで利用可能な技術ですが、次期Windows Serverでもサポートされる予定です。Dockerとはどのようなものなのか、一度、実際に触って体験してみてはいかがでしょうか。
「Docker」は、アプリケーションを構築、展開、実行するためのオープンなプラットフォームです。Dockerは「コンテナー型仮想化技術」ともいわれ、PaaS(Platform as a Services)やIaaS(Infrastructure as a Services)に続く、新たなクラウドの要素技術として注目されています(図1)。
現在、主要なLinuxディストリビューションではDockerを簡単に導入、利用できるようになっています。「CoreOS」や「Red Hat Enterprise Linux Atomic Host」のような、DockerのホストOSに特化した軽量OSも提供されています。また、Amazon Web Service(AWS)やGoogle、Microsoft Azure(以下、Azure)といった主要なパブリッククラウドでは、すでにDockerのサポートが提供されています。
さらに、現在開発中のWindows Serverの次期バージョンでも、Dockerがサポートされる予定です。マイクロソフトとDocker社の提携は、2014年10月に発表されました。2015年5月に公開が予定されている「Windows Server Technical Preview」の新しいビルドで、Dockerサポートが追加されるのではないか、と注目している技術者の方も多いのではないでしょうか。
Windows ServerにDockerがどのように実装されることになるのか、詳しいことはまだ分かりませんが、マイクロソフトは2015年4月8日(米国時間)に次期Windows Serverで軽量なインストールオプション「Nano Server」と「Windows Serverコンテナー(Windows Server Container)」および「Hyper-Vコンテナー(Hyper-V Container)」が提供されることを発表しています。
詳細に関しては、4月末に米サンフランシスコで開催される「Build 2015」や5月初めに米シカゴで開催される「Microsoft Ignite」で明らかになるようです。正式版は、次期Windows Serverがリリースされる予定の2016年ということになります。
Windows関係の仕事がほとんどの筆者は、これまでDockerに触れたことがありませんでした。しかし、次期Windows Serverに採用されるとあっては、Dockerが何者なのか知らずに済ますわけにはいきません。Windows ServerのDockerが登場する前のいま、Linuxベースの現在のDockerの基本を知っておいて損はないでしょう。利用するための具体的な手順は違うかもしれませんが、コンセプトは同じなはずです。
そこで、Dockerは今回が初めてという筆者が、以下の二つの入門記事を片手にAzure上のLinux仮想マシン環境でDockerを体験してみることにしました。筆者は初心者であるため、Dockerについて詳しく解説することはできませんが、実際に体験してみることで何かしら得るものがあると思うのです。
現状、DockerエンジンはLinuxをホストOSとして動作します。Mac OS XやWindowsでも「Boot2docker」を使用することでDockerエンジンのコンテナーを動かすことはできますが、これはVirtualBoxのLinux仮想マシンでDockerエンジンを動かしているようです。
Azureの仮想マシンギャラリーには、いくつかのLinuxディストリビューションのテンプレートが用意されており、非常に簡単な手順でLinux仮想マシンを展開できるようになっています。Dockerを試すのであれば、CoreOSのテンプレートを使用するのがお勧めです。CoreOSはDockerエンジンに特化した軽量なホストOSであり、Dockerのインストールや基本的な構成をスキップして、すぐにコンテナーを実行できます。
AzureでCoreOSを使用する方法については、マイクロソフトとCoreOS社から以下のドキュメントが公開されています。
どちらも、「Azureクロスプラットフォーム コマンドライン インターフェース」(xplat-cli)と、CoreOSが提供するDocker用の管理サービス「etcd」および「fleet」を使用して、コマンドラインベースで仮想マシンを展開し、複数台のCoreOS仮想マシンによるクラスターを構成する手順が説明されています。
ただし、この手順は初心者には少々ハードルが高いと思われます。例えば、「xplat-cli」の実行環境として、CoreOSとは別にLinux環境を準備する必要があります(Windows版「xplat-cli」もありますが、Windows版にはDockerのサポートは含まれません)。
「初めてのDocker」は、やはり先ほど紹介した二つの入門記事のように、1台のホストOSでDockerクライアント(dockerコマンド)を使用して、コンテナーを実行してみることから始めるのがよいでしょう。Azureでなら仮想マシンの作成時間を含めても10分もあれば、Dockerの基本操作を試すことができます。必要なのは、Azureのサブスクリプション(無料評価版でもOK)とWebブラウザー、そして「PuTTY」のようなSSHクライアントだけです。
まずは、Azureポータルの仮想マシンギャラリーで「CoreOS」(StableまたはAlphaまたはBeta)のイメージを選択して、仮想マシンを作成します(画面1)。イメージ選択後の手順は、他のLinuxイメージを選択した場合と変わりません。Azure上のLinux仮想マシンへの接続には「SSH」を使用しますが、SSH認証用の証明書の準備方法が分からないという場合は、パスワード認証だけで作成すれば簡単です(画面2)。
CoreOSは軽量なOSだからでしょうか、プロビジョニングはあっという間に完了します。きちんと計測したわけではありませんが、作成を開始してから「実行中」の状態になるまで3分もかかりませんでした。
仮想マシンの作成が完了したら、SSHクライアント(Windowsからの場合は「PuTTY」など)を使用して、CoreOSの仮想マシンにリモートログインします。CoreOSにはDockerがインストール済みとなっているので、通常のLinuxでDockerを使用する場合と違ってDockerのインストール作業は不要です。
次に、以下の二つのコマンドラインを実行すると、Dockerエンジンの情報とコンテナー管理のためのDockerサーバーおよびクライアントのバージョン情報を取得できます。「CoreOS Stable」の場合、CoreOSのバージョンが「607.0.0」、カーネルバージョンが「3.18.6」、Dockerのバージョンが「1.5.0」でした(画面3)。「CoreOS Release Notes」を確認すると、Stableリリースの最新版でした。
sudo docker info
sudo docker version
体験開始からわずか数分で、Dockerのコンテナー実行環境を手に入れることができました。今回はAzure標準のポータルで仮想マシンギャラリーから「CoreOS Stable」イメージを選択して作成しましたが、Azureの新しいプレビューポータルでは、「Azure Marketplace」で公開されている仮想マシンイメージから、Ubuntu ServerベースのDocker環境を簡単に作成することができます(画面4)。作成手順については、以下のドキュメントを参考にしてください。
Copyright © ITmedia, Inc. All Rights Reserved.