特集
» 2016年09月01日 05時00分 UPDATE

Windows管理者のためのDocker入門:無償の「Docker for Windows」で手軽にLinuxコンテナを利用する (1/2)

Windows OS向けのDocker for Windowsが正式にリリースされ、Windows環境でも簡単にDockerを導入できるようになった。Windows 10のHyper-VでDockerのコンテナを利用してみよう。

[打越浩幸,デジタルアドバンテージ]

 最近のITシステムでは、DockerのLinuxコンテナを使った軽量なアプリケーション実行環境の利用が進んでいる。本番環境だけでなく、運用や開発の現場でもコンテナ技術は広く使われている。だがDockerのコンテナはLinuxをベースにしているということもあり、Windows環境、特にクライアント環境ではまだまだ普及しているとは言いがたかった。

 だが2016年7月末に「Docker for Windows」(および「Docker for Mac」)の正式版(Ver.1.12)がリリースされ、64bit版のWindows 10ならば、比較的簡単に導入できるようになった。

 本記事では、このDocker for Windowsのインストール方法と簡単な利用方法についてまとめておく。

Docker for Windows Docker for Windows
長らくβ版という扱いだったDockerがVer.1.12で正式版となり、Windows 10のHyper-VをネイティブサポートしたDocker for Windowsがリリースされた。

「Docker」とは?

 Dockerとは何かについては別稿のTech Basics「Docker」を参照していただきたいが、簡単に言うと、非常に軽量なコンテナ型のアプリケーション実行環境のことである。

 独立したアプリケーション実行環境といえば、ハイパーバイザ型(Hyper-Vなど)やホスト型(Windows Virtual PCなど)の仮想実行環境を真っ先に思い浮かべる読者諸氏も多いだろう。これらは、PCのハードウェアをエミュレーションして、その上でOSやアプリケーションを動作させている。また目的のアプリケーションとは関係のないサービスなども多数動作する。そのため、オーバーヘッドが大きく、リソースも無駄に多く必要になりがちだ。

 これに対して「コンテナ」は、アクセスできるリソースや権限などを制限/分離した「プロセス」である。コンテナを管理するコストはプロセスを管理するコストとほとんど変わらず、仮想マシンを管理するコストと比較すると非常に軽い。

Dockerの実行環境 Dockerの実行環境
Dockerでは、最終的なアプリケーションはホストOSのプロセスとして実行されているため、余計なオーバーヘッドがない。ただし通常のLinuxのプロセスと違って、Linuxカーネルのサポートする「コンテナ」技術などをベースにしている。コンテナは、他のプロセスからは隔離された、ある程度独立したプロセス実行環境である。コンテナごとにファイルシステムやネットワークインタフェース、名前空間などが独立している。図中の「Docker Engine」はDockerのコンテナの実行をサポートするためのモジュールであり、外部からはDocker APIを使って制御される。Docker for Windowsでは、このLinux OS部分はHyper-V上で動作している。

Docker for Windowsとは?

 Dockerは、もともとはLinuxのコンテナ技術をベースとしたプロセス実行環境である。そのため、Dockerを動作させるためにはLinux OS(のコンテナ)が必要となる。

 だがWindows OSではLinuxコンテナを直接実行させることができないため、従来はWindows OS上にOracle VirtualBoxという仮想化ソフトウェアを乗せ、その上でLinux(もしくは、コンテナの実行だけに特化した軽量Linux OS)を動作させていた。これが今までWindows向けに提供されていた「Docker Toolbox」というツールである(従来は全てβ版という扱い)。

 Windows 8以降のWindows OSでは、標準的な仮想化環境としてHyper-Vが用意されているが、これはVirtualBox(やVMware Workstation)のようなサードパーティー製の仮想化ソフトウェアとは共存できない。そこでHyper-Vを使うように新しく作り直されたのが、今回リリースされたDocker for Windowsである。

 Windows標準のHyper-Vを使うため、操作や管理が簡単になるし、Hyper-Vを使う他の開発ツール(Visual Studioなど)とも親和性が高い。開発やテスト環境ではこれはありがたいだろう。

●「Windowsコンテナ」「Windows Subsystem for Linux」とは関係ない!?

 なお、念のために言っておくと、これは次期Server OS(Windows Server 2016)で利用可能になるとされている「Windowsコンテナ」(正確には「Windows Serverコンテナ」と「Hyper-Vコンテナ」の2つ。「Windows コンテナーに関するドキュメント」参照)をサポートするものではない。あくまでも「Linuxコンテナ」をサポートするものである。

 また、Windows 10 Anniversary Update(バージョン 1607、ビルド14393)で導入された「Windows Subsystem for Linux(WSL)」や「bash(Bourne Again Shell)」と連携することもない。WSL上に「apt-get install docker.io」でDocker関連のコンポーネントをインストールしようとしても一部エラーになってインストールできないし、WSL上からdockerコマンドを使って、Docker for Windowsの(Hyper-V上にインストールされている)コンテナを管理することもできない。

Docker for Windowsの要件

 Docker for Windowsを利用するための要件は以下の通りだ。

  • 64bit版のWindows 10(バージョン1511、ビルド10586以降)、ProもしくはEnterprise/Educationエディション
  • Hyper-Vが利用できること
  • コンテナ実行用の仮想マシンには、メモリ2GB、ディスク60GB(容量可変タイプの仮想ディスクで、初期サイズは4GB程度)のリソースが必要

 以上の要件を満たさない場合は、Docker for Windowsではなく、VirtualBoxを使った従来形式のツール(Docker Toolbox)をダウンロードしてインストールする。

Docker for Windowsのインストール

 Docker for Windowsは以下の場所からダウンロードできる。

 用意されているバイナリには「Stable channel(安定版)」と「Beta channel(最新機能を積極的に取り入れているβ版)」の2種類がある。通常は前者をインストールすればよいだろう。原稿執筆時点では、バージョンはVer.1.12.0となっていた。

 InstallDocker.msiファイルをダウンロード後、ダブルクリックするとインストーラが起動するので、指示に従ってインストール作業を行う。ユーザーが選択するべきオプションは何もないので、すぐにインストールが完了する。Hyper-V機能はあらかじめインストールしておいてもよいが、未インストールの場合は最後に「Docker requires Hyper-V to run」というダイアログが表示されるので、そこで[Enable & Restart]をクリックするとHyper-V機能が追加され、システムが再起動する。

Docker for Windowsのインストール Docker for Windowsのインストール
インストール時にするべきことはほとんど何もない。Dockerの管理用ツールのインストールから仮想マシンの作成、起動まで自動的に行われる。

 インストールが終わると、Hyper-Vに新しい仮想マシン「MobyLinuxVM」が追加され、さらに新たに仮想スイッチ「DockerNAT」が追加されているはずなので確認しておく。

Docker for Windowsインストール後の仮想マシンの状態 Docker for Windowsインストール後の仮想マシンの状態
Docker for Windowsをインストールすると自動的に仮想マシンが作成され、実行状態になっているはずである。

 仮想マシンの設定は次の通りである。

Docker for Windowsがインストールした仮想マシンの設定画面 Docker for Windowsがインストールした仮想マシンの設定画面
Docker用の軽量Linuxがインストールされ、この中で複数のコンテナが動作する。
  (1)「MobyLinuxVM」は、コンテナ向けの軽量OS「Alpine Linux」を使った、Docker用の仮想マシン。
  (2)このVMの場合、メモリは2GB確保されていたが、場合によってはもっと増やしてもよいだろう。
  (3)プロセッサはデフォルトでは2コアが割り当てられていた。
  (4)仮想ディスクは最大サイズ60GBの容量可変タイプ。
  (5)インストール元のOSのイメージ。
  (6)自動的に作成された「内部ネットワーク」インタフェースが接続される。

 一度インストールしてしまえば、基本的にはHyper-Vの管理ツールでこの仮想マシンを操作する必要はない。以後のDocker関連の操作は全てdockerコマンドで行う。仮想マシンの再起動などの操作は、後述のDocker for Windowsアプリの[Settings]にある[Reset]−[Restart Docker...]などを使うこと。さもないと、コンテナからインターネットへの接続が途絶えるといったトラブルが生じることがある。

       1|2 次のページへ

Copyright© 1999-2017 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。