Windows 10におけるWindowsコンテナの「プロセス分離モード」対応最新情報:企業ユーザーに贈るWindows 10への乗り換え案内(64)
Windows 10 November 2019 Update(バージョン1909)の新機能の一つに、Windowsコンテナの「プロセス分離モード」に関する制限緩和があります。今回は、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 Container Version Compatibility(最終更新日:2018年11月15日)[英語](Microsoft Docs)
- コンテナーについてよく寄せられる質問(Microsoft Docs)
また、「コンテナーについてよく寄せられる質問」ページの「コンテナーのライセンスについて、実行できるコンテナーの数に制限はありますか?」では、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)。
ホストと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.
関連記事
- さようならSAC-T! これまでの、これからのWindows 10の更新チャネルをざっくりと解説
2019年春にリリースされるWindows 10の新バージョンから、ブランチ準備レベル「半期チャネル(対象指定)」が廃止されることが発表されました。これにより、どのような影響があるでしょうか。Windows Update for Business(WUfB)を利用していない限り、何の影響もないでしょう。WUfBを利用しているなら、更新後に設定を確認しておきましょう。 - 次期Windows 10最新動向:リリース秒読みの「19H1」はこう変わる
間もなくリリースされるWindows 10の新しい機能アップデート「19H1」。それに実装される新機能をまとめてみた。また、同時に変更となるライフサイクルなどについても解説する。 - 複雑怪奇? Windows 10の大型更新とサポート期間を整理する
Windows 10では従来のWindows OSと異なり、年2回、大型アップデートの提供が行われるようになった。それに伴い、サポート期間もバージョンごとに設定されるなどの変更が行われており、かなり複雑なものとなっている。本稿では、アップデートの提供タイミングならびにそのサポート期間などを整理する。 - Windows Update for Businessってどうなったの?
Windows 10の登場ですっかり変わってしまったWindows Update。IT管理者の多くが戸惑っているに違いありません。「Windows 10 バージョン1511 ビルド10586」に合わせ、「Windows Update for Business」が利用可能になりました。しかし、筆者を含む多くの人が想像していたのとは違い、SaaSタイプのサービスではありませんでした。 - Windows 10の更新プログラム適用で地雷を踏まないためのWindows Update運用法
Windows Updateによるアップデートの適用は、場合によっては不具合を起こす可能性もある。アップデートによって不具合が発生しないことを確認してから適用するとよい。そのためのWindows Updateによる適用を延期する方法を紹介しよう。