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
2.6k
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
サイバーセキュリティの最新動向:脅威と対策
kyohmizu
1
210
コンテナセキュリティの基本と脅威への対策
kyohmizu
4
1.5k
安全な Kubernetes 環境を目指して
kyohmizu
4
1.1k
Unlocking Cloud Native Security
kyohmizu
5
1.2k
コンテナ × セキュリティ × AWS
kyohmizu
10
3.8k
コンテナセキュリティ
kyohmizu
10
4.1k
コンテナイメージのマルウェア検出とその実用性について
kyohmizu
4
3.3k
Play with 🐐 in Kubernetes
kyohmizu
1
1.3k
Security Command Center × PagerDuty 自動アラート通知の取り組み
kyohmizu
0
620
Other Decks in Technology
See All in Technology
CDKのコードレビューを楽にするパッケージcdk-mentorを作ってみた/cdk-mentor
tomoki10
0
220
ブロックチェーンR&D企業における SREの実態 / SRE Kaigi 2025
datachain
0
2.7k
Windows Server 2025 へのアップグレードではまった話
tamaiyutaro
2
220
攻撃者の視点で社内リソースはどう見えるのかを ASMで実現する
hikaruegashira
1
660
AWS re:Invent 2024 re:Cap Taipei (for Developer): New Launches that facilitate Developer Workflow and Continuous Innovation
dwchiang
0
190
Site Reliability Engineering on Kubernetes
nwiizo
6
3.2k
月間60万ユーザーを抱える 個人開発サービス「Walica」の 技術スタック変遷
miyachin
5
1.3k
横断SREの立ち上げと、AWSセキュリティへの取り組みの軌跡
rvirus0817
3
3.1k
2025/1/29 BigData-JAWS 勉強会 #28 (re:Invent 2024 re:Cap)/new-feature-preview-q-in-quicksight-scenarios-tried-and-tested
emiki
0
170
AWS Community Builderのススメ - みんなもCommunity Builderに応募しよう! -
smt7174
0
220
Plants vs thieves: Automated Tests in the World of Web Security
leichteckig
0
140
FinJAWS_reinvent2024_recap_database
asahihidehiko
2
250
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.5k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
113
50k
Site-Speed That Sticks
csswizardry
3
290
Side Projects
sachag
452
42k
Faster Mobile Websites
deanohume
305
30k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
880
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Raft: Consensus for Rubyists
vanstee
137
6.7k
Adopting Sorbet at Scale
ufuk
74
9.2k
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!