Windows 10におけるWindowsコンテナの「プロセス分離モード」対応最新情報企業ユーザーに贈るWindows 10への乗り換え案内(64)

Windows 10 November 2019 Update(バージョン1909)の新機能の一つに、Windowsコンテナの「プロセス分離モード」に関する制限緩和があります。今回は、Windows 10のプロセス分離モード対応について振り返りながら、この新機能について紹介します。

» 2019年12月24日 05時00分 公開
[山市良テクニカルライター]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「企業ユーザーに贈るWindows 10への乗り換え案内」のインデックス

企業ユーザーに贈るWindows 10への乗り換え案内

Windows 10におけるプロセス分離モードに関する公式情報

 「Windows Server 2016」で初めて実装されたDockerのサポートは、Windows 10 Anniversary Update(バージョン1607、ビルド14393)に対しても提供されました。

 Windows Serverには「Docker Enterprise for Windows Server」(旧称、Docker Enterprise Edition、Docker EE)の使用権が提供され、Windows ServerでDockerのコンテナホスト(Dockerサーバ)を構築することができ、Windowsコンテナを「プロセス分離モード」(Windows Serverコンテナ)と「Hyper-V分離モード」(Hyper-Vコンテナ)のいずれかで実行することができます。

 Windows 10では、「Docker Community Edition」(Docker CE、現在はDocker Desktop Community)でHyper-V分離モードのみの実行がサポートされました。

 本連載第42回では、「Stable版Docker Desktop 2.0.0.2」(Docker Engine 18.09.1)とWindows 10 October 2018 Update(バージョン1809)との組み合わせで、Windows 10でもWindowsコンテナをプロセス分離モードで実行できるようになったことを紹介しました。

 Windows 10におけるプロセス分離モードへの対応は、以下の「Windows Container Version Compatibility(Windowsコンテナのバージョン互換性)」ページには現状含まれていませんが、「コンテナーについてよく寄せられる質問」ページの「Windows 10でプロセス分離モードでWindowsコンテナを実行できますか?」のところで説明されています。

 また、「コンテナーについてよく寄せられる質問」ページの「コンテナーのライセンスについて、実行できるコンテナーの数に制限はありますか?」では、Windows 10でWindows Server CoreやNano ServerのベースOSイメージを使用するライセンス条件についても説明されています。

 Windows 10では、テストおよび開発目的でのみ、上限なくWindowsコンテナを実行できます。それ以外の目的でWindowsコンテナを実行することはできません。それ以外の目的(運用環境での実行)にはWindows Serverのコンテナホストが必要であり、そのライセンス条件に従う必要があります。

 プロセス分離モードのWindowsコンテナはホスト上のプロセスとして実行され、ホストOSと同じ容量のメモリとCPU数(論理プロセッサ数)を認識し、複数のコンテナ間でリソースを共有します。Hyper-V分離モードのコンテナには、コンテナごとに「UtilityVM」という仮想マシンが準備され、既定で仮想メモリ1GB、仮想プロセッサ2個が割り当てられます。そのため、プロセス分離モードを利用できると少ないリソースで素早くコンテナをビルドでき、スタートアップも早いという利点があります。

これまでのプロセス分離モードはビルド一致が必須条件

 Windows ServerまたはWindows 10でWindowsコンテナをプロセス分離モードで実行する場合、WindowsコンテナはホストOS上のプロセスとして実行されることになります。そのため、ホストOSとWindowsコンテナのベースOSのOSビルド番号が一致している必要があります(リビジョン番号までの一致は不要)。

 つまり、同じビルドのWindowsコンテナはプロセス分離モードまたはHyper-V分離モードで実行でき、下位ビルドのWindowsコンテナはHyper-V分離モードでのみ実行できます。上位ビルドのWindowsコンテナはサポートされません。

 例えば、Windows 10 May 2019 Update(バージョン1903、ビルド18362)のDocker Desktopでは、Windows Server, version 1903(ビルド18362)のWindows Server CoreおよびNano Serverイメージをプロセス分離モード(Windows Serverの既定、Windows 10では--isolation=processの指定が必要)で実行できますが、それ以前のビルドのイメージを実行するにはHyper-V分離モード(Windows 10の既定、Windows Serverでは--isolation=hypervの指定が必要)で実行する必要があります(画面1画面2)。

画面1 画面1 Windows 10 バージョン1809から1903までは、同じビルドのWindowsコンテナをプロセス分離モード(--isolation=process)で実行できる
画面2 画面2 下位ビルドのWindowsコンテナは、Hyper-V分離モード(Windows 10の既定のため、--isolation=hypervは省略可)で実行できる

 ホストとWindowsコンテナのビルドが一致しない場合、「Error response from daemon:……:The container operating system does not match the host operating system.」のエラーが発生します。

Windows 10 バージョン1909におけるプロセス分離モードの制限緩和

 プロセス分離モードのビルド一致要件は、Windows Server, version 1903およびWindows 10 バージョン1903(ビルド18362)までの要件です。Windows Server, version 1909およびWindows 10バージョン1909(ビルド18363)ではこの要件が緩和され、下位ビルドのWindowsコンテナをプロセス分離モードで実行できるようになりました。

Copyright © ITmedia, Inc. All Rights Reserved.

「Windows 7」サポート終了 対策ナビ

RSSについて

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

メールマガジン登録

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