連載
» 2015年10月07日 05時00分 UPDATE

vNextに備えよ! 次期Windows Serverのココに注目(29):WindowsコンテナーをDockerから操作するには?――あなたの知らないコンテナーの世界(その4) (1/3)

前回までは、Windows Server 2016 Technical Preview 3(TP3)の「Windows Serverコンテナー」を、PowerShellコマンドレットによるネイティブな方法で操作してきました。今回は、Windows Server 2016 TP3における「Docker」のサポートを説明します。

[山市良,テクニカルライター]
「vNextに備えよ! 次期Windows Serverのココに注目」のインデックス

連載目次

“Docker Toolbox(Boot2Docker)があるじゃないか”って?

 Windows Server 2016 Technical Preview 3(TP3)で初めて「Docker」がサポートされたと聞いて、“以前から「Docker Toolbox」(旧称:Boot2Docker)があったじゃない”という人がいるかもしれません。

 Docker Toolboxは、WindowsやMac OS上でDockerを手軽に試すことができるツールで、DockerのWebサイトから無料で入手できます。Docker Toolboxは、「Boot2Docker」と呼ばれていたツールの後継になります。

 Windows版のDocker Toolboxと、Windows Server 2016 TP3のDockerサポートは全く違います。

 Windows版のDocker Toolboxは「Oracle VirtualBox」の仮想マシン上でLinuxベースの軽量なホストOSを動かし、その仮想マシンをDockerホストとして、Windows版のDockerクライアントからコンテナーを操作するという方法でDocker環境を実現しています(画面1)。

画面1 画面1 Docker Toolbox(Boot2Dockerの後継ツール)は、Oracle VirtualBoxの仮想マシン上でLinuxベースのDockerホストを動かして、WindowsやMac OSにDocker環境を実現している

 つまり、Docker ToolboxのDockerホスト上で実行できるのは、Linuxベースのコンテナーだけです。Windows Server 2016 TP3のDockerサポートと共通しているところがあるとすれば、Dockerクライアントとして提供されるWindows版のDockerバイナリだけでしょう。

 Windows Server 2016 TP3におけるDockerサポートとは、本連載の第26回「Windows ServerのDockerサポートとは?」で説明したように、Dockerとの管理互換を提供するものです。

 コンテナーホストのセットアップ時には、セットアップ用スクリプト「ContainerSetup.ps1」によってDockerのWindows版バイナリ「Docker.exe」がダウンロードされ、「Docker Daemon」としてシステムに登録されます。

 Docker Daemonは、ローカルのDockerクライアント(同じDocker.exe)およびリモートのDockerクライアント(WindowsやLinux)からDocker APIによる接続を受け付け、Windows Server 2016 TP3のContainersとの橋渡しを行います。

 つまり、Windows Server 2016 TP3のDockerサポートとは、Windows Server 2016に実装予定のコンテナー技術であるContainers上で作成、実行されるWindows Serverコンテナーを、Dockerと同じ管理方法で操作できるということです。

 将来的に開発者や管理者は、オープンなDockerエコシステムの一部としてWindowsベースのコンテナーを利用できるようになり、LinuxとWindowsのコンテナーを横断する分散アプリケーションを展開できるようになるでしょう。

 ただし、Windows Server 2016の現時点(TP3)でのDockerサポートには、さまざまな制約があります。以下のドキュメントには、Windows Serverコンテナーに対して使用できないDockerコマンドや、部分的にしか機能しないDockerコマンドについて説明されています。例えば、Dockerハブにコンテナーイメージをアップロードする「docker push」コマンドは、リポジトリが存在しないというエラーで失敗します。

 先に指摘しておきますが、Windows Server 2016 TP3では、Windows PowerShellコマンドレットで作成したコンテナーをDockerコマンドで参照したり、操作したりすることはできません。また、その反対にDockerで作成したコンテナーをPowerShellで参照したり、操作したりすることもできません。将来的には同じコンテナーをWindows、Linuxの両方から管理できるようになると思いますが、現状は統合されていない点に注意してください。

 それでは、本連載の第27回「所要時間は1分未満! 今すぐできるWindows Serverコンテナーの作り方」および第28回「IISコンテナーの作成で理解するコンテナーのネットワーク機能」で説明したPowerShellによる管理が、Dockerから管理するとどうなるのか、見てみましょう。

 なお、筆者はDockerに精通しているわけではないので、Dockerコマンドの細かい使い方については説明しません。以下のWebサイトのようなLinuxベースのDockerのよくあるチュートリアルを参考に、同じように実行してみているだけです。具体的なコマンドについては、画面から読み取ってください。

       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

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

RSSについて

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

メールマガジン登録

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