Skip to content

MS_ContainerTechnology

nishi_74322014 edited this page Aug 21, 2026 · 2 revisions

コンテナ技術

概要

  • コンテナ型仮想化技術
  • コンテナ系でコレジャナイを起こさないように。

補足(何が「コレジャナイ」なのか): Windows の周辺には
名前が似ていて中身が違うものが並んでおり、
選択を誤ると「Linux コンテナが動くと思ったら動かない」となる。
本ページはその整理が主眼である。まとめると次の 1 表になる。

名称 分離のレイヤ 動かせるもの
Windows Server コンテナ プロセス(OS レベル) Windows のみ。ホストとカーネルを共有
Hyper-V コンテナ ハイパーバイザ(HW レベル) Windows / Linux。軽量 VM でくるむ
Linux コンテナ プロセス(OS レベル) Linux のみ。Windows では VM か WSL2 が要る

核心は「コンテナはカーネルを共有する」という一点で、
だから Windows 上で Linux コンテナを動かすには
どこかに Linux カーネルが必要になる。

詳細

Linuxコンテナ

Linux ネイティブなコンテナ。

  • Docker(DNET_Docker.md)を参照。

Windowsコンテナ

Windows ネイティブ & Linux ネイティブなコンテナ。

Docker と同じ仕組みの Windows ネイティブなコンテナ。

Hyper-Vの Hypervisor で
Windows や Linux をコンテナとして動かす。

上記の差異

分離のレイヤが違う。

  • Windows Server コンテナは、コンテナーベースの仮想化(OS レベルの仮想化)で、
    Docker と同じように、プロセスで分離される。
  • Hyper-V コンテナは、ハイパーバイザーベースの仮想化
    (ハードウエアレベルの仮想化)で、ホスト OS に対するゲスト OS で分離される。

補足(Windows コンテナ特有の制約): Windows Server コンテナは
ホストとカーネルを共有するため、ホストとコンテナの OS バージョンを
揃える必要がある
(バージョン互換性)。
Linux コンテナのように「どのホストでも同じイメージが動く」
という手軽さは無い。

また、ベース イメージのサイズが大きい点も実務上の負担になる。

ベース イメージ 用途
nanoserver 最小。.NET(Core)アプリ向け。数百 MB
servercore .NET Framework アプリ・IIS向け。数 GB

レガシー資産(.NET Framework + ASP.NET)を
コンテナに載せる場合は servercore が要り、
イメージが数 GB になる点は見積もりに効いてくる。

Docker系

Docker(DNET_Docker.md

Linux コンテナを使った、主にソフトウェアの自動デプロイメント(展開)を
支援するシステム

  • Windows 上から Windows コンテナ や Linux コンテナ(Docker)を使うための製品
  • Windows(コマンド)上から、Docker を管理できるコマンド。

更に、K8s、WSL2、Windows Server コンテナなどがサポートされた。

補足(Docker Desktop は有償化された): 2021年8月、
Docker Desktop のライセンスが変更され、
一定規模以上の企業(従業員 250 名以上 または 年商 1000 万ドル以上)では
有償サブスクリプションが必要になった。

無償の代替としては次がある。

代替 備考
Rancher Desktop OSS。Docker CLI 互換 + K8s
Podman Desktop Red Hat。デーモンレス
WSL2 に直接 Docker Engine Docker Desktop 不要。Engine 自体は Apache 2.0 で無償

「Docker は無償」という前提で設計されている資料は多いので、
現在の導入検討では必ずライセンスを確認したい。

クラウド・コンテナ・エコシステム

Open PaaS(DNET_OpenPaaS.md

Docker を基盤として動く、オープンソースによって構成される PaaS。

マネージド Kubernetes

  • Azure Kubernetes Service (AKS)
  • Google Kubernetes Engine (GKE)
  • Amazon Elastic Kubernetes Service (EKS)
  • Oracle Container Engine for Kubernetes (OKE)
  • VMware Tanzu Kubernetes Grid(旧 PKS / VKE)

移行メモ(最新化): 元ページの見出し「XKE / XKS」に挙げられた製品名は
現在では次のように変わっている。

元ページ 現在
Amazon Elastic Container Service for Kubernetes (EKS) Amazon Elastic Kubernetes Service (EKS)
Pivotal Container Service (PKS) VMware Tanzu Kubernetes Grid Integrated
VMware Kubernetes Engine (VKE) 提供終了(Tanzu に統合)

補足(Windows コンテナの現在地): クラウド側でも
Windows コンテナは動く(AKS の Windows ノード プール、
Azure Container Instances 等)が、

  • Linux ノードに比べてノード単価・起動時間ともに不利
  • エコシステム(サイドカー、監視エージェント等)の対応が薄い

という状況が続いている。
新規に組むなら .NET Core 以降で Linux コンテナ
既存 .NET Framework 資産をそのままコンテナ化したい場合にだけ Windows コンテナ
という切り分けが実務的である。

参考

@IT

Qiita

microsoft.com


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

NetDevInfraWiki

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

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally