「Windows Server 2016」の「Technical Preview 3」(TP3)で「Docker」およびコンテナのサポートが追加された。本記事では、コンテナの持つ可能性と、Windows Server 2016が提供する2種類のコンテナについて解説する。
![](/storage/2015/09/07/baa380f8f4a74bb4bd8a27dd95384491/Fig.jpg)
提供:Microsoft
Microsoftは米国時間8月19日、「Windows Server 2016 Technical Preview 3」をリリースした。今回の目玉はコンテナとDockerのサポートだ。Microsoftの開発チームが、GitHubでホストされているオープンソースプロジェクトDockerのエンジン部分に貢献したというのは、「Windows」の歴史において画期的な出来事と言えるだろう。Microsoftは、Dockerコミュニティーと.NETコミュニティーの間に横たわる溝を埋めるとともに、開発者がLinuxとWindowsの持つ能力を組み合わせ、引き出すことで複雑な分散アプリケーションを開発できるようにした。
これまでの簡単な歴史
MicrosoftとDockerは2014年11月以来、「Windows Server」でコンテナのサポートを実現するために緊密に連携してきている。「Build 2015」カンファレンスではその成果として、DockerとWindowsの統合能力を示すデモが実施された。デモにおいて、「Microsoft Azure」の最高技術責任者(CTO)であるMark Russinovich氏は、LinuxコンテナとWindowsコンテナを組み合わせたマイクロサービスを披露した。
Dockerも、Build 2015カンファレンスの少し前に、Windows向けのDockerクライアントを発表している。またMicrosoftは2015年7月、Open Container Initiative(OCI)に創設メンバーとして参加するとともに、共通のコンテナフォーマットとランタイムのサポートを表明している。
Windows Server 2016 TP3で提供されているコンテナ関連の機能
今回リリースされた最新のテクニカルプレビュー版では、コンテナ化されたアプリケーションを実行するために、以下の機能が提供されている。
- Windows Server上で動作する「Docker Engine」
- Dockerのコマンドラインツール
- 「Visual Studio 2015」のDocker向けツール
MicrosoftはWindowsにコンテナ関連の機能を搭載するにあたって、ネイティブなWindows APIを使用するか、Docker互換のAPIを使用するかという2つの選択肢を有していた。後者を選択し、Dockerの既存ツールと拡張をサポートすることで、同社はDockerのエコシステムへの参入を果たせる。そして、「Docker Swarm」や「Kubernetes」「Mesosphere」といったオーケストレーションツールは、Windows上に配備されたコンテナと即座にやり取りできるようになる。このためMicrosoftとDockerは、Docker EngineをWindows上に実装するために緊密に連携し、Linux固有のシステムコールをWindowsの内部APIに置き換えたのだ。