Windows上で稼働するLinux、動かしているのはどのテクノロジー?(その1):その知識、ホントに正しい? Windowsにまつわる都市伝説(94)(2/2 ページ)
Windows 10 Anniversary Updateでは「Bash on Ubuntu on Windows」が利用可能になりました。これは、Windows上でネイティブなUbuntu環境を実現するものですが、今後、Windows上でLinux環境を実現するバリエーションがさらに増えることになります。現時点でプレビュー段階のものを含め、Windows 10で実現可能なLinux環境とそのベースとなっているテクノロジーを簡単に紹介します。
Linuxコンテナ on Windows(Hyper-Vコンテナ)
Windowsコンテナのための「Hyper-Vコンテナ」は、Hyper-Vの分離環境を利用して、カーネルを提供するOS環境(Hyper-Vの別パーティションのWindows Server)上にサンドボックス環境を構築します。
現行バージョンは、Windows ServerコンテナとHyper-Vコンテナのどちらも、Windowsコンテナ(microsoft/windowsservercore、microsoft/nanoserver、およびこれらをベースとしたアプリケーションを含むイメージ)専用です。Linuxのカーネルを提供する環境が存在しないため、Linuxコンテナを実行することはできません。
Windows 10 Fall Creators UpdateおよびWindows Server バージョン1709では、Hyper-VコンテナでLinuxコンテナを実行できるようになる予定です。この計画は2017年4月に「DockerCon 2017」で発表され、9月に初めてその具体的な実装が披露されました。そして、Windows 10 Insider PreviewおよびWindows Server Insider Previewで評価することが可能になりました。
現在の実装では、「LinuxKit」(コンテナ実行に特化したLinux Subsystem)のコンテナ向けLinux、またはUbuntuベースのコンテナ向けLinuxをHyper-Vの仮想化環境と分離し、Linuxカーネルのサンドボックス環境をHyper-Vコンテナとして実現する形になっています(画面5)。
画面5 Windows 10上でHyper-Vコンテナとして動作中のLinuxコンテナ(ubuntuおよびbusybox)とWindows(microsoft/nanoserver-insider)コンテナ(画面はWindows 10 Insider Previewバージョン1709、ビルド16288)
Hyper-VコンテナにおけるLinuxのサポートは、ようやくフィードバックの受付が始まったばかりであるため、実運用環境で利用できるようになるまでには、しばらく時間がかかりそうです。
- Sneak peek #3: Windows Server, version 1709 for developers[英語](Windows Server Blog)
これらのバリエーションは、見た目があまり変わらないため、違いを区別しようとすると混乱してしまいそうです。
MicrosoftはSQL Server 2017 on LinuxのDockerイメージ(microsoft/mssql-server-linux、2017年10月4日に正式提供開始)を提供していますが、これはLinuxベースのコンテナです。Hyper-VコンテナでLinuxコンテナがサポートされると、Windows上のHyper-VコンテナでSQL Server on Linuxを実行できるようになるはずです。ちょっと想像してみてください。混乱するでしょう?
次回は、これらのバリエーションを技術的な面からさらに深く解説します。
筆者紹介
山市 良(やまいち りょう)
岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(Oct 2008 - Sep 2016)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows Server 2016テクノロジ入門−完全版』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.