はじめに
くどうです。
前回のコンテナの基本的な扱いの続きです。今回は、ContainerでWebサーバーを起動して接続してみます。
Azureの設定
Containerで利用されるIPアドレスが172.16.0.0/24です。
仮想マシンに割り当てられるIPアドレスは172.16.0.0/16のため、重複するとQuik Start通りにいきません。
そこで、仮想マシンを作成する過程でIPアドレスを変更します。
図のようにプレビューポータルでは、作成時にIPアドレスの設定をします。
CIDRを10.0.0.0/16に指定します。
もしくは、仮想ネットワークへ作成し所属させましょう。
エンドポイントを指定します。HTTPをTCPでパブリックポート:80、プライベートポート:80で作成します。
プレビューポータルでの設定は完了です。
Containerの設定
Powershellを起動します。
C:Userslocaladmin>powershell
Windows PowerShell
Copyright (C) 2015 Microsoft Corporation. All rights reserved.
New-Container
コマンドでContainerを作成します。
PS C:Userslocaladmin> $contanier = New-Container -Name webbase -ContainerImageName WindowsServerCore -SwitchName "Virtual Switch"
Start-Container
コマンドでContainerを起動します。
PS C:Userslocaladmin> Start-Container $contanier.ContainerName
Enter-PSSession
コマンドでContainerに接続します。
PS C:Userslocaladmin> Enter-PSSession -ContainerId $contanier.ContainerId -RunAsAdministrator
Quik Startではnginxをインストールしていますが、せっかくのWidnowsServerなのでIISをインストールします。
Add-WindowsFeature
コマンドでWeb-Server
を追加します。
[0618348c-2e8]: PS C:Windowssystem32> Add-WindowsFeature Web-Server
Success Restart Needed Exit Code Feature Result
------- -------------- --------- --------------
True No Success {Common HTTP Features, Default Document, D...
IPを確認します。
[0618348c-2e8]: PS C:Windowssystem32> .ipconfig.exe
Windows IP Configuration
Ethernet adapter vEthernet (Virtual Switch-0618348C-2E8E-48BF-AF97-061F69F59C67-0):
Connection-specific DNS Suffix . : lv69cont01.b9.internal.cloudapp.net
Link-local IPv6 Address . . . . . : fe80::c9a8:f10c:5688:fac6%19
IPv4 Address. . . . . . . . . . . : 172.16.0.2
Subnet Mask . . . . . . . . . . . : 255.240.0.0
Default Gateway . . . . . . . . . : 172.16.0.1
終了します。
[0618348c-2e8]: PS C:Windowssystem32> exit
Get-NetNat
コマンドでのName
を確認します。
ContainerNAT
です。
PS C:Userslocaladmin> Get-NetNat
Name : ContainerNAT
ExternalIPInterfaceAddressPrefix :
InternalIPInterfaceAddressPrefix : 172.16.0.0/12
IcmpQueryTimeout : 30
TcpEstablishedConnectionTimeout : 1800
TcpTransientConnectionTimeout : 120
TcpFilteringBehavior : AddressDependentFiltering
UdpFilteringBehavior : AddressDependentFiltering
UdpIdleSessionTimeout : 120
UdpInboundRefresh : False
Store : Local
Active : True
Add-NetNatStaticMapping
コマンドでポートフォワーディングの設定をします。
InternalIPAddress
には、ContainerのIPを指定します。ExternalIPAddress
には0.0.0.0
を指定します。
PS C:Userslocaladmin> 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
ファイヤーウォールの設定をします。HTTP(TCP/80)を開けます。
PS C:Userslocaladmin> if (!(Get-NetFirewallRule | where {$_.Name -eq "TCP80"})) { New-NetFirewallRule -Name "TCP80" -DisplayName "HTTP on TCP/80" -Protocol tcp -LocalPort 80 -Action Allow -Enabled True }
Name : TCP80
DisplayName : HTTP on TCP/80
Description :
DisplayGroup :
Group :
Enabled : True
Profile : Any
Platform : {}
Direction : Inbound
Action : Allow
EdgeTraversalPolicy : Block
LooseSourceMapping : False
LocalOnlyMapping : False
Owner :
PrimaryStatus : OK
Status : The rule was parsed successfully from the store. (65536)
EnforcementStatus : NotApplicable
PolicyStoreSource : PersistentStore
PolicyStoreSourceType : Local
確認
仮想 IP アドレスを確認し、IISのデフォルトページが表示できることを確認します。
まとめ
Containerの設定を行いました。ContainerがWindowsなのでIISが動きます。
多少、Quick Startにははまりましたが、問題なく動作しています。
Azureの場合は、エンドポイントの指定など設定ポイントが少々異なります。気を付けましょう。
ではでは。