-
Notifications
You must be signed in to change notification settings - Fork 0
MS_ContainerTechnology
- コンテナ型仮想化技術
- コンテナ系でコレジャナイを起こさないように。
補足(何が「コレジャナイ」なのか): Windows の周辺には
名前が似ていて中身が違うものが並んでおり、
選択を誤ると「Linux コンテナが動くと思ったら動かない」となる。
本ページはその整理が主眼である。まとめると次の 1 表になる。
名称 分離のレイヤ 動かせるもの Windows Server コンテナ プロセス(OS レベル) Windows のみ。ホストとカーネルを共有 Hyper-V コンテナ ハイパーバイザ(HW レベル) Windows / Linux。軽量 VM でくるむ Linux コンテナ プロセス(OS レベル) Linux のみ。Windows では VM か WSL2 が要る 核心は「コンテナはカーネルを共有する」という一点で、
だから Windows 上で Linux コンテナを動かすには
どこかに Linux カーネルが必要になる。
Linux ネイティブなコンテナ。
- Docker(
DNET_Docker.md)を参照。
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 になる点は見積もりに効いてくる。
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 は無償」という前提で設計されている資料は多いので、
現在の導入検討では必ずライセンスを確認したい。
Docker を基盤として動く、オープンソースによって構成される PaaS。
- 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 コンテナ、
という切り分けが実務的である。
-
最終回 Windowsプログラムを実行するWindowsコンテナ:超入門Docker
http://www.atmarkit.co.jp/ait/articles/1702/02/news039.html -
Tech TIPS:「Windows Serverコンテナ」「Hyper-Vコンテナ」「Linuxコンテナ」「Docker」の違いとは?
http://www.atmarkit.co.jp/ait/articles/1611/04/news028.html
-
Windowsユーザが、Dockerを使おうとすると混乱するね。
https://qiita.com/satotka/items/f7b4b86ad75e6212e41f -
Windows でコンテナ使いたい時のまとめ 2017
https://qiita.com/tksarah/items/cf3ca3724532491a6861
- Windows コンテナーのドキュメント
https://learn.microsoft.com/virtualization/windowscontainers/
Tags: 移行, Windows, Hyper-V, 仮想化, コンテナ
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。