LinuxコンテナはWindows Server Containerでは動かない
Windows Server Containerの登場により、Windows Server、LinuxともにDockerを用いたコンテナが利用可能になります。この両者に互換性はあるのでしょうか?
「LinuxコンテナはWindows Serverでは動かない」と、Windows AzureのCTO、Mark Russinovich氏が8月17日付けでブログにポストした記事「Containers: Docker, Windows and Trends」で次のように説明しています。
Linux containers require Linux APIs from the host kernel and Windows Server Containers require the Windows APIs of a host Windows kernel, so you cannot run Linux containers on a Windows Server host or a Windows Server Container on a Linux host.
LinuxコンテナはホストカーネルのLinux APIを用い、Windows Server ContainerはホストとなるWindowsカーネルのWindows APIを用いる。だから、LinuxコンテナをWindows Serverで動かすことも、Windows Server ContainerをLinuxホストで動かすこともできない
Windows Server ContainerもDockerのコンテナも、Dockerクライアントからの操作や操作のためのAPIには互換性があるとされています。しかしそこで実行できるバイナリはカーネルに依存するため互換性がないということですね。
コンテナの仕組みを考えるとこれは自然なことで、Publickeyでも当初からそう予想していましたが、あらためてマイクロソフト Azure CTOからも同様の説明がされたことになります。
あわせて読みたい
イーサネット接続とキーバリューストア内蔵のディスクドライブがオープン化へ。「Kinetic Open Storage Project」をLinux Foundationが開始
≪前の記事
Docker Engineを搭載しコンテナに対応したWindows Server 2016 Technical Preview 3が登場