Microsoftが今日(米国時間8/19)、Windows Server 2016とSystem Center 2016の三度目のテクニカルプレビューを公開した。予告されていたようにこれは、Windows Server ContainersをネイティブにサポートするWindows Serverの最初のバージョンで、この、LinuxコンテナのMicrosoftバージョンは、Powershellから、またはDockerのコマンドラインツールから管理できる。
Microsoftは、デベロッパがコンテナのサポートを求めていることをよく知っている。Microsoftのクラウドプラットホームマーケティング担当ゼネラルマネージャMike Schutzによると、同社は、アプリケーションの開発と試験と展開のサイクルをできるかぎり短縮せよというプレッシャーがますます高まっている中で、デベロッパとITプロフェッショナルの両方を支援していきたい。とくに今のデベロッパには、ますます強力なトレンドになりつつあるコンテナを自分も使いたいという欲求があるので、ITの人びとにはコンテナを管理するツールも提供していく。
Schutzによると、WindowsのコンテナツールをPowershellで使うと、Dockerを利用するデベロッパに、自分が使い慣れているツールのような感触を与え、またPowershellのユーザにとっては、コンテナをとても使いやすく感じさせる。ちょっと面倒なのは、Powershellで作ったコンテナはDockerで管理できず、また、その逆もだめなのだ。
DockerとMicrosoftは、コンテナサポートのあるWindows ServerとWindows版Dockerコンテナの両方に関してパートナーしている。そしてデベロッパは、それらを標準のDockerツールで管理できる。もちろんこれはDockerにとって大きな勝利だが、アプリケーションをWindows Serverでデプロイするデベロッパも大いに助かる。Microsoftがこの船に飛び乗ってくれるまでは、Dockerは主に、Linuxオンリーの技術でしかなかった。
ただし残念ながら、LinuxコンテナをWindows Serverで動かすことはできないし、その逆も不可だ。Microsoft AzureのCTO Mark Russinovichが、ブログ記事でこう書いている: “LinuxコンテナはホストのカーネルからのLinux APIを必要とし、Windows Server ContainersはホストのWindowsカーネルからのWindows APIを必要とする。したがって、LinuxコンテナをWindows Serverホストの上で動かすことはできないし、またWindows Server ContainerをLinuxホスト上で動かすこともできない”。しかしながら、同じDockerクライアントが両方の種類のコンテナを管理することはできる。
またWindows Serverには、Hyper-V Containersと呼ばれる第二のコンテナデプロイメントオプションがある。このタイプのコンテナは、Windowsカーネルの自分専用のコピーを使い、メモリも自分に割り当てられたメモリを独占するから、より高度なアイソレーションが提供される。
と聞くと、Hyper-Vはまるで従来型の仮想マシン(コンテナと違ってOSも自分用のコピーがある)のようだが、DockerはHyper-VコンテナとWindows Server Containersの両方を管理できるようになる。Hyper-VコンテナをサポートするWindows Serverは、次のプレビューから提供される。
これらのコンテナをサポートするために今日Microsoftは、Visual StudioのDockerツールをアップデートした。
Schutzによると、同社のコンテナ技術の多くの部分と、また今回のプレビューでローンチしたソフトウェア定義ネットワーキング技術の一部はどちらも、同社の、Azureプラットホームのための技術がベースになっている。
Windows Serverのこのプレビューに含まれるそのほかの機能には、軽量サーバNano Serverオプションの一部の新機能(ネットワーキングの構成を修復するための緊急時管理コンソールなど)や、仮想マシンをホストのオペレーティングシステムからより確実に隔離するためのセキュリティ機能、などがある。新しい機能の完全なリストは、ここにある。