Rancherで
Windows Server上の
コンテナを管理できるか
2017/6/15
Rancher Meetup #7
Microsoft MVP
Cloud and Data Center Management
金井 崇
自己紹介
• 名前:金井 崇
• 所属:株式会社IDCフロンティア
• 仕事:IaaSの基盤設計・構築・運用・提案を担当
• 興味:仮想化 コンテナ オールフラッシュ GPU FPGA
Chef Docker PowerShell VSCode Hadoop
• MVP:Cloud and Data Center Management (2017/03~)
• SNSなど:
• Facebook https://www.facebook.com/anikundesu
• Blog http://www.takanyan.net/
• Twitter @anikundesu
• LinkedIn https://jp.linkedin.com/in/takashikanai/ja
• SlideShare https://www.slideshare.net/anikundesu/presentations
2017/6/15 2
注意事項
本セッションは、2017年6月現在のWindows Server 2016での検証結果をもとに記述をしています。最新リ
リース、パッチ適用状況によっては挙動が異なる場合がありますので、ご留意ください。
本セッション資料は、個人で準備した環境において、個人的に実施した検証・結果を基に記載しています。
あくまで個人の意見・見解であり、所属する会社・組織及びマイクロソフト社とは関係がございません。所属
する会社・組織・マイクロソフト社の正式な回答・見解ではない事に留意してください。
本資料を閲覧した事により問題が生じた場合、または問題が発生しかけた場合、または生じた一切の不利
益について、発表者は一切の責任を負う事はできませんのでご了承ください。
2017/6/15 3
本日のアジェンダ
2
3
4
Windows Serverの3つのコンテナ1
RancherからWindowsコンテナの管理
まとめ
Rancher経由でWindowsコンテナ起動
2017/6/15 4
Windows Serverの3つのコンテナ
Section 1
2017/6/15 5
1. Windows Serverコンテナー
Windows OS上でプロセス空間の分離
2. Hyper-Vコンテナー
OS KernelをHyper-Vで分離したコンテナ環境を実現
3. Docker for Windows
Hyper-Vで動かすLinuxゲストOSでLinuxベースのコンテナを実行
2017/6/15 6
Windows Serverコンテナー
• 一つのOS上でプロセスを分離
• Docker APIでコンテナを操作
Windows ホストのOS Kernel
Windows Server
コンテナー1
Windows Server
コンテナー2
Process1 Process2
Docker Engine
ホスト
Process
Docker Client
Docker API
2017/6/15 7
Hyper-Vコンテナー
• 一つのコンテナに1つのOS
• Docker APIでHyper-Vの仮想マシンを操作
Windowsホスト
OS Kernel VM1 VM2
Process1 Process2
Docker Engine
ホスト
Process
Docker Client
Docker API
Hyper-V
ゲスト1
Win Kernel
ゲスト2
Win Kernel
2017/6/15 8
Docker for Windows
• Hyper-V上にLinux仮想マシンを1つ作成
• Docker APIでLinux仮想マシン上のコンテナを操作
Windowsホスト
OS Kernel MobyLinux VM
Docker Engine
ホスト
Process
Docker Client
Docker API
Hyper-V
Linux Kernel
Linuxコンテナ
Process1
Linuxコンテナ
Process2
2017/6/15 9
DockerCon 2017, Build 2017での発表
• LinuxカーネルベースのコンテナがWindows上
で起動
• 利用するテクノロジーは「Hyper-Vコンテナ」と
「Windows subsystem for Linux」(Bash on
Windows)
• 詳細は8月以降にリリースされるらしい・・・
2017/6/15 10
RancherからWindowsコンテナの管理
Section 2
2017/6/15 11
本日の環境
3パターンの構成でIISをホストするコンテナを作成
2017/6/15 12
Hyper-Vホスト(このノートPC)
(Windows Server 2016) 192.168.1.10
Management Container
(CentOS 7 VM) 192.168.1.11
Rancher Server
(8080/tcp)
Rancher Agent
(Linuxホスト用)
(Hyper-Vコンテナー) (Hyper-Vコンテナー)
IIS IIS
nanoiis_NAThv
172.25.yyy.yyy
nanoiis_TransHV
192.168.1.101
nanoIIS_NATwin
172.25.xxx.xxx
(Windowsコンテナー)
IIS
Win NAT Transparent NW
DHCPサービス
Rancherセットアップの流れ
Windows Server
コンテナを
有効化
Rancher用Linux
サーバー準備
Rancher Server
を起動
Windows
コンテナを認識
 Rancherのセットアップ自体は非常に簡単
 Windowsコンテナ環境の構築も数Stepで完了
2017/6/15 13
Windowsじゃないのでここは説明省略!
1. Windowsのコンテナーを有効化
1. Windowsの「コンテナー」機能有効化
2017/6/15 14
Hyper-Vとコンテナーの両方に
チェックをつけて有効化後、
OS再起動
1. Windowsのコンテナーを有効化
2. Windows Updateを必ず実施
• Windows Serverコンテナ利用に必須なUpdateあり
3. Docker Providerのインストール
PS C:¥> Install-Module -Name DockerMsftProvider -Repository PSGallery –Force
PS C:¥> Install-Package -Name docker -ProviderName DockerMsftProvider
4. OS再起動
2017/6/15 15
2つ目のコマンドはMS本家の
Documentと違い、”-Force”
オプションをつけない!
2. Rancher Serverの起動
1. dockerコマンド1行!
$ sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server:stable
2. Web UIで設定
今回の環境では http://192.168.1.11:8080/ にアクセス
参照:Installing Rancher Server
http://docs.rancher.com/rancher/v1.6/en/installing-rancher/installing-server/#installing-rancher-server
2017/6/15 16
3. Windowsコンテナを認識
1. 環境Templateの修正
– Transparentネットワークの名前を”Get-ContainerNetwork”で確認
– Environment TemplateのWindowsテンプレートを編集
Topメニューの「Manage Environment」
>Windows Templateの右の「Edit」
>Orchestrationの「Edit Config」
>「Name of Transparent Network Driver」に
調べたNameを入力。
2017/6/15 17
3. Windowsコンテナを認識
2. Windows用Environment作成
Topメニューの「Manage Environment」
>「Add Environment」
>TemplateにWindowsを選択
>名前などを入力して「Create」
2017/6/15 18
3. Windowsコンテナを認識
3. WindowsホストをEnvironmentに追加
画面左上で作成したEnvironmentを選択
>画面上部の「INFRASTRUCTURE」
>「Hosts」を選択してクリック
>「Add Host」ボタンをクリック
>画面表示のStep 3のコマンドをPowerShellで実行
PS C:¥> New-Item -Path 'C:¥Program Files¥rancher' -Type Directory
PS C:¥> Invoke-WebRequest -UseBasicParsing
'https://github.com/rancher/agent/releases/download/v0.6.0/agent.exe' -OutFile
'C:¥Program Files¥rancher¥agent.exe'
PS C:¥> & ‘C:¥Program Files¥rancher¥agent.exe’ -register-service
http://192.168.1.11:8080/v1/scripts/(以下略)
PS C:¥> Start-Service rancher-agent
2017/6/15 19
Rancher経由でWindowsコンテナ起動
Section 3
2017/6/15 20
コンテナのリスト画面
2017/6/15 21
「INFRASTRUCTURE」>「Containers」で表示
Windowsコンテナ作成画面
2017/6/15 22
外部とのNetwork構成、Hyper-Vコンテナー or Windowsコンテナーを選んで作成
Webサーバーのコンテナを起動
DEMO
2017/6/15 23
まとめ
Section 4
2017/6/15 24
まとめ
1. Rancher Serverのセットアップは非常に簡単
2. Windowsのコンテナーは複数種類があり場合に
よっては使い分けが必要
3. すでに結構使えているので、RancherのWindows
対応は今後期待できそう
2017/6/15 25
参考情報
• Windows Container Networking
https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-
containers/container-networking
• Rancher “Windows (Experimental)”
http://docs.rancher.com/rancher/v1.6/en/windows/
• Installing Rancher Server
http://docs.rancher.com/rancher/v1.6/en/installing-rancher/installing-server/
• DockerHub nanoserver/iis
https://hub.docker.com/r/nanoserver/iis/
2017/6/15 26
さらに詳しい勉強会は・・・
Interact 2017
6月24日(土) 13時~18時
@日本マイクロソフト 品川本社
https://interact.connpass.com/event/45862/
2017/6/15 27
Q&A
??
2017/6/15 28

Rancherでwindows server上のコンテナを管理できるか