VM や VDI 環境で Docker Desktop for Window を実行

Docker は一般的に、 Mac、 Linux、Windows 上のどれかでネイティブに Docker Desktop を実行するのを推奨します。ですが、仮想デスクトップが適切に設定されている仮想デスクトップ内で Docker Desktop for Linux を実行できます。

仮想デスクトップ環境内で Docker Desktop を実行するには、仮想デスクトップを提供する仮想マシン上で、 ネスト化された仮想化(nested virtualization) の有効化が必須です。この理由は、 Docker Desktop が内部で Linux VM を使用し、そこで Docker Engine とコンテナを実行しているからです。

仮想デスクトップのサポート

注釈

Docker ビジネス利用者のために、 VMware ESXi や Azure VM 内での Docker Desktop 実行がサポートされています。

ネスト化された仮想化が正しくセットアップされていれば、仮想マシン内で実行している Docker Desktop のインストールと実行まで Docker から利用可能なサポートが拡大されます。既にテストに成功しているハイパーバイザは VMware ESXi と azure のみです。他の仮想マシンは一切サポートされません。Docker Desktop のサポートについての詳しい情報は、 サポートを受ける をご覧ください。

Docker が管理している以外の問題や継続的な障害のトラブルシュートには、ハイパーバイザの提供事業者に連絡すべきです。各ハイパーバイザのベンダは、様々なレベルのサポートを提供しています。たとえば、 Microsoft はオンプレミス上と Azure 上のどちらでもネスト化された Hyper-V の実行をサポートしています。VMWare ESXi では、これがあてはまらない場合があります。

ネスト化された仮想化の有効化

仮想マシン上に Docker Desktop をインストールする前に、ネスト化された仮想化の有効化が必要です。

VMware ESXi 上でネスト化された仮想化を有効化

vSphere VM 内では、 Hyper-V のような他のハイパーバイザによるネスト化された仮想化は サポートされていないシナリオ です。しかしながら、VMware ESXi VM 内で Hyper-V VM の実行は、技術的には可能で、バージョンに依存しますが ESXi にはハードウェア支援による仮想化もサポートされている機能です。内部のテストで使った VM は、4コア の 1 CPU と 12GB のメモリでした。

ハードウェア支援による仮想化をゲスト OS に公開する手順は、 VMware のドキュメントをご覧ください

また、 いくつかのネットワーク設定の調整 も必要です。

Microsoft Hyper-V 上でネスト化された仮想化を有効化

Azure VM 内で Hyper-V を実行するにあたり、ネスト化された仮想化は Microsoft によってサポートされています。

Azure 仮想マシンでは、 選んだ VM サイズがネスト化された仮想化をサポートしているかどうか確認します 。Microsoft は Azure VM サイズに役立つリストを提供し 、ネスト化された仮想化を現時点でサポートしているサイズを強調表示しています。内部テストでは D4s_v5 マシンを使いました。Docker Desktop のパフォーマンスを最適化するため、この仕様以上を推奨します。

参考

Run Docker Desktop for Windows in a VM or VDI environment

https://docs.docker.com/desktop/vm-vdi/