web-dev-qa-db-ja.com

Dockerコンテナーとして使用するWindows 10イメージを作成する

既存のレガシーアプリケーションをドッキングするために、Windows 10イメージを作成しようとしています。非常に良い理由で、ベースイメージはWindows 10 not Windows Serverである必要があります。これを行うにはどうすればよいですか?

私が考えていたのは:

1)Hyper-VマシンとしてVanilla Windowsインストールを作成します

2)アプリケーションをインストールします

3)このVMをシャットダウンします

4)結果のVHDXをWindowsイメージ(WIM)ファイルに変換します

5)どういうわけかこれをドッカーのベースイメージとして使用します

私は正しい道を進んでいますか?

7
Calanus

いいえ、これは機能しません。

Windowsコンテナー(これはLinuxのDockerコンテナーと同じです)は基本的にWindowsの「ユーザースペース」部分を含みますが、単一の基盤となるWindowsサーバーカーネルを共有します。

私はそれを考えるのに便利な方法を見つけます。それは、各コンテナーがWindowsで分離された個別のユーザーアカウントのようなものであるということです。複数のユーザーアカウントを作成でき、それぞれに独自のプライベートファイルセットがあり、それぞれが互いに隔離されていますが、基になるOSに直接関連付けられており、すべて同じ共有カーネルで実行されています。

これは、単一の共有カーネルの場合、CPUまたはメモリレベルでのハードウェア仮想化を必要としないため、非常に効率的です。

ただし、その設計に従って、Windows 10のUIやその他すべてのものは、Windows Server 2016カーネルで動作するように設計されていません。彼らは偶然の一致で機能するかもしれませんが、そうではありません。

また、VHD/WIMまたはその他の種類のイメージを取得して、「それが私のコンテナです」と言うことはできません。メインOSの効果的な表現である「ベースイメージ」から始め、必要に応じて変更を適用する必要があります。ベースのWindowsサーバーをWindows 10に変えるために必要な一連の変更を理解しようとすることは想像できません。

3
Orion Edwards