Windows Server 2016 TP3 では、Windows Server Containers による、コンテナー仮想化の技術を試すことができます。
自分でインストールした TP3 で「ContainerSetup.ps1」を実行することで、コンテナーの実行環境を構築することができますが、OS のシステムロケールについては注意する必要がありそうです。
OS のシステムロケールを「English (United States)」で使用している場合は問題はないのですが、これを「Japanese」に変更してしまうと、コンテナーに PowerShell で接続し、「Get-WindowsFeature」や「Add-WindowsFeature」等を実行すると、処理が進まなくなるという現象が発生してしまうようでうす。
# 最初の段階で止まってしまったり、24%から動かなくなるというような現象が発生しました。
現状、TP3 は日本語版が提供されておらず、
- コンテナーとコンテナーホストのシステムロケールが不一致
が起因して、処理が実行できていないのかの切り分けができていないのですが、現状、検証をする場合、システムロケールは英語にしておくのがよさそうです。
コンテナーOSイメージがカスタムで作成できるようになると切り分けもできると思うのですが、現状カスタムのOSイメージは使用できないので、原因の解決が難しいですね。。。。
インストール時にデフォルトの英語の状態でインストールし、
tzutil.exe /s "Tokyo Standard Time" $NewList = New-WinUserLanguageList -Language "ja-JP" $NewList.Add("en-US") Set-WinUserLanguageList $NewList -Force Set-WinUILanguageOverride ja-JP Set-WinHomeLocation 0x7A Set-ItemProperty -Path registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters\ -Name "LayerDriver JPN" -Value "kbd106.dll" -Type String Set-ItemProperty -Path registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters\ -Name "OverrideKeyboardIdentifier" -Value "PCAT_106KEY" -Type String Set-ItemProperty -Path registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters\ -Name "OverrideKeyboardSubtype" -Value 2 -Type DWord Set-ItemProperty -Path registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters\ -Name "OverrideKeyboardtype" -Value 7 -Type DWord Restart-Computer -Force
のようなスクリプトで、日本語入力が可能な環境にするか、日本語のシステムロケールでインストールした場合は、英語に変更するというような対応をすることで、コンテナーに機能追加をして、コンテナーをカスタマイズする検証が実施できるかと。
# IIS をコンテナーにインストールするところまでは確認できました。
Azure や、DL できるコンテナーの実行環境が整備された VHD はシステムロケールが英語になっていそうですので、それらを使用している場合は、問題なく検証できるかと。