Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Windowsコンテナ入門
Search
Kyohei Mizumoto
October 25, 2019
Technology
5
3k
Windowsコンテナ入門
Slides for a study meeting.
https://ssmjp.connpass.com/event/148726/
Kyohei Mizumoto
October 25, 2019
Tweet
Share
More Decks by Kyohei Mizumoto
See All by Kyohei Mizumoto
Black Hat USA 2025 Recap ~ クラウドセキュリティ編 ~
kyohmizu
0
810
CTFのためのKubernetes入門
kyohmizu
2
1k
クラウドネイティブ環境の脅威モデリング
kyohmizu
2
710
コンテナサプライチェーンセキュリティ
kyohmizu
2
420
サイバーセキュリティの最新動向:脅威と対策
kyohmizu
1
370
コンテナセキュリティの基本と脅威への対策
kyohmizu
4
2.1k
安全な Kubernetes 環境を目指して
kyohmizu
4
1.3k
Unlocking Cloud Native Security
kyohmizu
5
1.5k
コンテナ × セキュリティ × AWS
kyohmizu
11
4.2k
Other Decks in Technology
See All in Technology
Regional_NAT_Gatewayについて_basicとの違い_試した内容スケールアウト_インについて_IPv6_dual_networkでの使い分けなど.pdf
cloudevcode
1
210
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
200
みんなだいすきALB、NLBの 仕組みから最新機能まで総おさらい / Mastering ALB & NLB: Internal Mechanics and Latest Innovations
kaminashi
0
180
AIとともに歩む情報セキュリティ / Information Security with AI
kanny
4
3k
KubeCon + CloudNativeCon NA ‘25 Recap, Extensibility: Gateway API / NRI
ladicle
0
170
GCASアップデート(202510-202601)
techniczna
0
230
クレジットカード決済基盤を支えるSRE - 厳格な監査とSRE運用の両立 (SRE Kaigi 2026)
capytan
5
1.7k
SREのプラクティスを用いた3領域同時 マネジメントへの挑戦 〜SRE・情シス・セキュリティを統合した チーム運営術〜
coconala_engineer
1
420
Meshy Proプラン課金した
henjin0
0
170
レガシー共有バッチ基盤への挑戦 - SREドリブンなリアーキテクチャリングの取り組み
tatsukoni
0
150
小さく始めるBCP ― 多プロダクト環境で始める最初の一歩
kekke_n
0
240
Azure Durable Functions で作った NL2SQL Agent の精度向上に取り組んだ話/jat08
thara0402
0
110
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
130
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
110
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
130
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Docker and Python
trallard
47
3.7k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
51
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
86
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
62
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
Producing Creativity
orderedlist
PRO
348
40k
Transcript
Windowsコンテナ⼊⾨
Kyohei Mizumoto(@kyohmizu) C# Software Engineer Interests Docker/Kubernetes Go Security whoami
今⽇話すこと コンテナの基本 Windowsコンテナ概要 デモ(時間があれば)
今⽇のゴール Windowsコンテナを何となく理解する Windowsコンテナを実⾏できるようになる
コンテナの基本
コンテナ︖ 仮想化技術の⼀つ(コンテナ型仮想化) ⇔ 仮想マシン(VM) 1つのホスト上に複数の分離空間(=コンテナ)を作成 ホストのプロセスとして動作 それぞれのコンテナでは異なるOSを実⾏可能 ホストOSのカーネルを共有 Dockerコンテナが主流
仮想マシン コンテナ https://docs.microsoft.com/ja-jp/dotnet/architecture/microservices/container-docker- introduction/docker-defined
コンテナの特徴 仮想マシンとの相違 軽量(オーバーヘッドが少ない) 起動が⾼速 分離レベルはあまり⾼くない セキュリティリスクに注意 → Rootlessコンテナの利⽤ → gVisorによるサンドボックス化
コンテナを⽀える技術 namespace プロセスID、ユーザ、ファイルシステム等を分離 コンテナからホストのプロセス、ユーザは⾒えない cgroups CPU、メモリ等のマシンリソースを分離 リソースの使⽤量を制限
Windowsでのコンテナ利⽤ Docker Desktop for Windows 仮想マシン上でコンテナ実⾏を実⾏ Hyper-Vを使⽤ https://docs.docker.com/docker-for-windows/ Docker Toolbox(⾮推奨)
レガシーなDockerデスクトッププログラム Oracle VM VirtualBoxを使⽤ https://docs.docker.com/toolbox/
Windowsコンテナ
Windowsコンテナ Windows Serverを実⾏するコンテナ Docker Desktop for Windowsで実⾏ Docker Toolboxでは実⾏不可 2つの分離モード
プロセス分離(Process Isolation) Hyper-V分離(Hyper-V Isolation)
ベースイメージ Windows Server Core 従来の .NET frameworkアプリケーション⽤ Nano Server .NET
Coreアプリケーション⽤ Windows Windows APIのフルセット Windows IoT Core IoTアプリケーション⽤ ※イメージは Docker Hub から取得可能
コンテナホストの要件 Windows Server 2016、Windows Server 2019、 Windows 10 Professional または
Enterprise コンテナ機能が有効になっている Hyper-Vの機能が有効になっている(Hyper-V分離) OSが「C:」にインストールされいている(プロセス分離) BIOSで仮想化が有効になっている ホストOSがHyper-V仮想マシンの場合、nested virtualization の有効化が必要 https://docs.microsoft.com/ja-jp/virtualization/windowscontainers/deploy- containers/system-requirements
分離モード 2つの分離モード プロセス分離(Process Isolation) Hyper-V分離(Hyper-V Isolation) 使⽤するイメージは共通 実⾏時のオプション(--isolation)で選択する 既定値(オプションなしで実⾏した場合) Windows
Serverではプロセス分離 Windows 10ではHyper-V分離 https://docs.microsoft.com/ja-jp/virtualization/windowscontainers/manage- containers/hyperv-container
プロセス分離 ホストOS上のプロセスとしてコンテナを実⾏ ホストOSとカーネルを共有 ホストOSと同じバージョンのみ実⾏可能 起動が早く、オーバーヘッドが少ない 開発、テスト⽤
プロセス分離 Windowsのコンテナ機能を使⽤ ホストの実⾏プロセス CExecSvc.exe(コンテナ実⾏エージェント) 1コンテナ当たりCExecSvcが1つ起動 ホストからコンテナ内の実⾏プロセスを確認できる
Hyper-V分離 Hyper-Vの仮想マシン上でコンテナを実⾏ ホストOSとカーネルを共有しない ホストOSと同じか、古いバージョンのみ実⾏可能 Hyper-Vマネージャーでは確認できない 分離レベルが⾼い
Hyper-V分離 Hyper-Vの機能を使⽤ ホストの実⾏プロセス vmwp.exe(仮想マシンワーカー) vmmem.exe(メモリ、CPUをコンテナ⽤に仮想化) 1コンテナ当たりvmwp、vmmemが1つずつ起動 サポート⽤に1つのvmwp、2つのvmmemが常駐 ホストからコンテナ内の実⾏プロセスを確認できない
コンテナの実⾏ プロセス分離 docker run -it --isolation=process ` mcr.microsoft.com/windows/servercore:ltsc2019 cmd Hyper-V分離
docker run -it --isolation=hyperv ` mcr.microsoft.com/windows/servercore:ltsc2019 cmd
デモ
Azure VMでの利⽤ VMサイズはv3を指定する Nested Virtualizationを有効にするため https://docs.microsoft.com/en-us/azure/virtual-machines/windows/nested-virtualization https://azure.microsoft.com/de-de/blog/introducing-the-new-dv3-and-ev3-vm-sizes/
Azure Container Instanceでの利⽤
Kubernetesでの利⽤ Windowsのノード上で、Windowsコンテナを利⽤可能 https://kubernetes.io/docs/setup/production-environment/windows/intro-windows-in-kubernetes/
Azure Kubernetes Serviceでの利⽤ コンソール(Azure Cloud Shellなど)を使⽤ 1. プレビューの拡張機能(aks-preview)をインストール 2. AKSクラスタを作成
Windows⽤に管理ユーザー名とパスワードを指定 3. Windows Serverのノードプールを追加 4. kubernetesリソースを作成 nodeSelectorに "beta.kubernetes.io/os": windows を設定 https://docs.microsoft.com/en-us/azure/aks/windows-container-cli
参考 Microsoftドキュメント(翻訳に難あり) https://docs.microsoft.com/ja-jp/virtualization/windowscontainers/ DockerHub - Docker Desktop for Windows https://hub.docker.com/editions/community/docker-ce-desktop-windows
@ITの記事 https://www.atmarkit.co.jp/ait/articles/1902/07/news024.html Docker実践ガイド第2版 https://book.impress.co.jp/books/1118101052
Thank you!