Skip to content

MS_HyperVContainer

nishi_74322014 edited this page Aug 12, 2026 · 1 revision

Hyper-V コンテナ

概要

  • Hyper-Vの Hypervisor で Windows や Linux を動かす。
  • その中で、Windows ネイティブ(Nano Server(MS_NanoServer.md))&
    Linux ネイティブな軽量な仮想マシンをコンテナとして動かす
  • ホストとゲストの OS イメージの分離によって安全性が高まり、
    マルチテナント環境ではメリットが得られる
  • Hyper-V コンテナは実行時に Docker Engine によってのみ実行される。
    • VM ではないため、Hyper-V Manager などの従来の Hyper-V ツールで
      管理されない。
    • Linux の場合は、Docker on MobyLinux on Hyper-V on Windows 実機となる。

詳細

  • コンテナ毎に実行される仮想マシン環境。
    • 仮想マシンの中でコンテナ用 OS が、
    • さらにその上でコンテナ・プロセスが実行される。
  • コンテナはコンテナ用 OS 環境を疑似的に提供する。
    • ホスト OS とカーネルを共有しない。
    • コンテナ用 OS とカーネルを共有する。
      • Server Core(MS_ServerCore.md
      • Nano Server(MS_NanoServer.md

補足(分離レベルの比較): Windows Serverコンテナとの
違いは「カーネルを共有するか」の一点である。

Windows Server コンテナ Hyper-V コンテナ
分離 プロセス(OS レベル) ハイパーバイザ(HW レベル)
カーネル ホストと共有 専用(軽量 VM の中)
起動時間 速い(秒未満) 遅い(数秒)
メモリ 小さい 大きい(VM 分)
ホストとの OS バージョン一致 必要 不要(古いイメージも動く)
安全性 中(カーネルの脆弱性が波及しうる)

「速さを取るか、分離を取るか」というトレードオフであり、
マルチテナント(他人のコードを動かす)では Hyper-V コンテナが選ばれる。

補足(現在は「分離モード」として指定する): 執筆当時は
「2 種類のコンテナ」という説明だったが、現在は
同じイメージを「分離モード」で切り替えて動かすという整理になっている。

docker run --isolation=process  mcr.microsoft.com/windows/servercore:ltsc2022
docker run --isolation=hyperv   mcr.microsoft.com/windows/servercore:ltsc2022
OS 既定の分離モード
Windows Server process(速い)
Windows 10 / 11(クライアント) hyperv

クライアント OS で既定が hyperv なのは、
開発者のホスト OS を守るためである。
「Windows 10 でコンテナが遅い」と感じるのはこれが理由になる。

補足(Linux コンテナとの関係): 「Linux の場合は
Docker on MobyLinux on Hyper-V」という記述は
Docker Desktop の旧構成である。
現在は WSL2バックエンドが既定になり、
MobyLinuxVM は使われなくなった
Docker Desktop for Windowsを参照)。

参考

@IT

Microsoft Learn


Tags: 移行, Windows, Hyper-V, 仮想化, コンテナ

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally