前回に、引き続き Windows Server 2016 TP 4 のコンテナ技術を試してみました。
今回は、前回構築したコンテナホストの上でWindows Server Container と、Hyper-V Container のコンテナを作ってみます。
Windows Server Container
まずは、Windows Server Container 。
参考にしたのは、下記のサイトです。
https://msdn.microsoft.com/ja-jp/virtualization/windowscontainers/quick_start/manage_powershell
まずは、「ServerCoreDemo01」という名前のコンテナを作成して起動し、リモートPowerShell で接続するまで
PS C:UsersAdministrator> Get-ContainerImage Name Publisher Version IsOSImage ---- --------- ------- --------- NanoServer CN=Microsoft 10.0.10586.0 True WindowsServerCore CN=Microsoft 10.0.10586.0 True PS C:UsersAdministrator> New-Container -Name ServerCoreDemo01 -ContainerImageName WindowsServerCore -SwitchName "Virtual Switch" Name State Uptime ParentImageName ---- ----- ------ --------------- ServerCoreDemo01 Off 00:00:00 WindowsServerCore PS C:UsersAdministrator> Start-Container -Name ServerCoreDemo01 PS C:UsersAdministrator> Enter-PSSession -ContainerName ServerCoreDemo01 -RunAsAdministrator
なんとなく、コンテナの中でGet-Process を実行した時のログ
[ServerCoreDemo01]: PS C:Windowssystem32> get-process Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id SI ProcessName ------- ------ ----- ----- ----- ------ -- -- ----------- 83 5 932 4472 ...72 0.03 2168 2 CExecSvc 162 9 1252 3848 ...00 0.44 2852 2 csrss 0 0 0 4 0 0 0 Idle 532 18 2608 9316 ...95 0.50 2420 2 lsass 197 13 2288 8604 ...99 0.17 3452 2 msdtc 210 17 26572 25552 ...04 0.52 3220 2 powershell 445 25 41836 56904 ...59 3.72 3708 2 powershell 179 8 1816 5456 ...73 0.78 2064 2 services 46 2 348 1140 ...58 0.23 1164 0 smss 134 9 1596 7124 ...16 0.08 3580 2 SppExtComObj 215 11 6632 18308 ...16 1.86 3532 2 sppsvc 235 13 1672 6232 ...83 0.23 444 2 svchost 897 32 10084 26108 ...88 2.70 728 2 svchost 213 15 3076 9408 ...00 0.42 2056 2 svchost 280 13 2520 9824 ...36 0.30 2176 2 svchost 282 11 2176 8284 ...93 0.27 2260 2 svchost 81 6 996 4780 ...91 0.03 2456 2 svchost 255 12 6592 10816 ...95 0.83 2688 2 svchost 381 30 4540 14152 ...62 0.45 2772 2 svchost 1798 0 124 136 3 45.70 4 0 System 98 9 972 4688 ...76 0.33 1176 2 wininit
リモートPowerShell を抜けて、コンテナホスト上でGet-Process を実行した時のログ
PS C:UsersAdministrator> get-process Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id SI ProcessName ------- ------ ----- ----- ----- ------ -- -- ----------- 78 5 932 4476 ...72 0.03 2168 2 CExecSvc 42 4 1676 3020 ...69 0.02 2032 0 cmd 45 5 1672 3304 ...96 0.02 2384 1 cmd 102 7 1188 5680 ...12 4.02 1972 0 conhost 117 10 10464 11664 ...62 22.61 2392 1 conhost 214 11 1740 4164 ...02 3.31 484 0 csrss 135 10 1176 7336 ...01 10.23 560 1 csrss 159 9 1252 3844 ...00 0.44 2852 2 csrss 167 13 32092 22532 34955 30.61 568 0 docker 0 0 0 4 0 0 0 Idle 765 20 4300 12284 ...99 2.92 704 0 lsass 524 18 2608 9316 ...95 0.50 2420 2 lsass 193 12 2380 8788 ...97 0.14 1008 0 msdtc 197 13 2288 8608 ...99 0.17 3452 2 msdtc 440 60 95572 41500 ...82 75.56 1896 0 MsMpEng 101 7 1612 5756 56 0.02 1824 0 nssm 710 32 67828 104444 ...19 21.80 2724 1 powershell 210 17 26572 25552 ...04 0.52 3220 2 powershell 210 9 2264 5936 ...73 1.11 692 0 services 178 8 1816 5456 ...73 0.78 2064 2 services 49 2 356 1176 ...58 0.09 376 0 smss 46 2 348 1140 ...58 0.23 1164 0 smss 134 9 1596 7124 ...16 0.08 3580 2 SppExtComObj 215 11 6632 18308 ...16 1.86 3532 2 sppsvc 491 19 4356 11628 ...55 0.36 432 0 svchost 233 13 1672 6232 ...83 0.23 444 2 svchost 376 16 9528 14492 ...05 7.67 516 0 svchost 897 32 10084 26108 ...88 2.70 728 2 svchost 1260 39 18100 36428 ...53 19.08 760 0 svchost 373 12 3056 9512 ...95 1.33 788 0 svchost 424 22 5112 12616 ...09 2.73 808 0 svchost 307 14 2184 6956 ...86 1.22 848 0 svchost 317 21 8580 13936 ...62 0.34 968 0 svchost 248 13 2604 8672 ...06 3.28 976 0 svchost 577 35 8660 20456 ...75 8.64 1196 0 svchost 377 31 10220 14896 ...27 5.88 1304 0 svchost 279 16 6976 16192 ...46 6.78 1784 0 svchost 213 15 3076 9408 ...00 0.42 2056 2 svchost 276 13 2464 9812 ...35 0.30 2176 2 svchost 276 11 2124 8276 ...92 0.27 2260 2 svchost 81 6 996 4780 ...91 0.03 2456 2 svchost 254 12 6592 10820 ...95 0.83 2688 2 svchost 373 30 4540 14152 ...62 0.45 2772 2 svchost 1742 0 124 136 3 45.77 4 0 System 171 11 1712 9080 ...48 0.19 2244 1 taskhostw 157 12 2468 11052 ...97 1.47 2596 0 vmcompute 700 23 12024 29048 ...83 3.20 1996 0 vmms 117 8 1372 7068 ...89 0.05 1076 0 VSSVC 94 8 816 4716 ...75 0.09 584 0 wininit 98 9 972 4688 ...76 0.33 1176 2 wininit 181 8 1568 8428 ...06 0.27 616 1 winlogon 138 8 1712 7288 ...85 0.16 932 0 WmiPrvSE
続いて、先ほど作成した「ServerCoreDemo01」に IIS をインストールし、「ServerCoreIIS」というイメージに保存するまで
PS C:UsersAdministrator> Enter-PSSession -ContainerName ServerCoreDemo01 -RunAsAdministrator [ServerCoreDemo01]: PS C:Windowssystem32> Install-WindowsFeature web-server Success Restart Needed Exit Code Feature Result ------- -------------- --------- -------------- True No Success {Common HTTP Features, Default Document, D... [ServerCoreDemo01]: PS C:Windowssystem32> exit PS C:UsersAdministrator> Stop-Container -Name ServerCoreDemo01 PS C:UsersAdministrator> get-container Name State Uptime ParentImageName ---- ----- ------ --------------- ServerCoreDemo01 Off 00:00:00 WindowsServerCore PS C:UsersAdministrator> New-ContainerImage -ContainerName ServerCoreDemo01 -Name ServerCoreIIS -Publisher Demo -Version 1.0 Name Publisher Version IsOSImage ---- --------- ------- --------- ServerCoreIIS CN=Demo 1.0.0.0 False PS C:UsersAdministrator> Get-ContainerImage Name Publisher Version IsOSImage ---- --------- ------- --------- ServerCoreIIS CN=Demo 1.0.0.0 False NanoServer CN=Microsoft 10.0.10586.0 True WindowsServerCore CN=Microsoft 10.0.10586.0 True
不要となったコンテナの削除
PS C:UsersAdministrator> Remove-Container -Name ServerCoreDemo01 -Force
IISをインストールしたイメージの展開
80ポートの接続設定も行っています。
PS C:UsersAdministrator> Start-Container -Name IISDemo PS C:UsersAdministrator> Invoke-Command -ContainerName IISDemo {ipconfig} Windows IP Configuration Ethernet adapter vEthernet (Virtual Switch-A8030751-BFA8-4DE0-BDED-F36AF226A064-0): Connection-specific DNS Suffix . : Link-local IPv6 Address . . . . . : fe80::b403:ac46:d729:1b82%17 IPv4 Address. . . . . . . . . . . : 172.16.0.2 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 172.16.0.1 PS C:UsersAdministrator> if (!(Get-NetNatStaticMapping | where {$._ExternalPort -eq 80 })) { >> Add-NetNatStaticMapping -NatName "ContainerNat" -Protocol TCP -ExternalIPAddress 0.0.0.0 -InternalIPAddress 172.16.0.2 -InternalPort 80 -ExternalPort 80 >> } StaticMappingID : 0 NatName : ContainerNat Protocol : TCP RemoteExternalIPAddressPrefix : 0.0.0.0/0 ExternalIPAddress : 0.0.0.0 ExternalPort : 80 InternalIPAddress : 172.16.0.2 InternalPort : 80 InternalRoutingDomainId : {00000000-0000-0000-0000-000000000000} Active : True PS C:UsersAdministrator> if(!(Get-NetFirewallRule | where {$_.Name -eq "TCP80"})){ >> New-NetFirewallRule -Name "TCP80" -DisplayName "HTTP on TCP/80" -protocol tcp -LocalPort 80 -Action Allow -Enable True} PS C:UsersAdministrator>
コンテナホストのIP(192.168.0.8)にブラウザで接続するとIISの初期画面を閲覧できます。
Hyper-V Container
下記サイトを参考にしました。
https://msdn.microsoft.com/ja-jp/virtualization/windowscontainers/management/hyperv_container
作成するコンテナは、「HyperVCon」です。
PS C:UsersAdministrator> Get-Container Name State Uptime ParentImageName ---- ----- ------ --------------- NanoServerDemo Off 00:00:00 NanoServer IISDemo Running 07:44:07.2470000 ServerCoreIIS PS C:UsersAdministrator> New-Container -Name HyperVCon -ContainerImageName NanoServer -Switch "Virtual Switch" -RuntimeType HyperV PS C:UsersAdministrator> Get-Container Name State Uptime ParentImageName ---- ----- ------ --------------- NanoServerDemo Off 00:00:00 NanoServer IISDemo Running 07:45:59.7650000 ServerCoreIIS HyperVCon Off 00:00:00 NanoServer PS C:UsersAdministrator> Get-Container | Select ContainerName , RunTimeType ContainerName RuntimeType ------------- ----------- NanoServerDemo Default IISDemo Default HyperVCon HyperV PS C:UsersAdministrator> Start-Container -Name HyperVCon PS C:UsersAdministrator> Get-Container Name State Uptime ParentImageName ---- ----- ------ --------------- NanoServerDemo Off 00:00:00 NanoServer IISDemo Running 07:50:50.6680000 ServerCoreIIS HyperVCon Running 00:00:37.2250000 NanoServer PS C:UsersAdministrator> Enter-PSSession -ContainerName HyperVCon -RunAsAdministrator [HyperVCon]: PS C:windowssystem32configsystemprofileDocuments> get-process Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id SI ProcessName ------- ------ ----- ----- ----- ------ -- -- ----------- 5 908 4256 ...73 0.25 1452 1 CExecSvc 4 444 1524 ...63 0.17 952 1 csrss 0 0 4 0 0 0 Idle 16 2404 9444 ...89 2.11 1012 1 lsass 51 34448 52432 ...32 26.20 484 1 powershell 8 1548 5100 ...68 2.27 996 1 services 2 268 1076 ...58 0.55 904 0 smss 12 1352 5540 ...79 0.84 580 1 svchost 7 1508 5408 ...80 0.67 748 1 svchost 14 12468 20640 ...15 3.41 1084 1 svchost 11 5072 8872 ...83 1.19 1156 1 svchost 10 1564 6208 ...78 0.52 1244 1 svchost 13 2620 8660 ...93 0.81 1268 1 svchost 0 80 80 2 19.86 4 0 System 7 820 3696 ...67 0.41 976 1 wininit 7 2336 7312 ...79 0.58 1436 1 WmiPrvSE [HyperVCon]: PS C:windowssystem32configsystemprofileDocuments> exit
もうちょっと、色々触ってみようかなー。
コメント