2016/07/04

Hyper-V Container に入れた IIS、Commit すると動かない問題(未解決)

未解決物件。

Windows Server 2016 Technical Preview 5 (TP5) のコンテナー ホストで、Hyper-V Container を nanoserver イメージから作成し、IIS をインストールしてから、イメージを Commit します。このカスタム イメージから新しいコンテナーを作成すると、IIS (W3SVC) が System error 1068 でエラーになる件。原因不明。

C:\> docker run --name mynanoiis01 -it -p 80:80 -v c:\share:c:\pacakges --isolation=hyperv nanoserver cmd

(↓ここから コンテナー mynanoiis01 の cmd)
C:\> DISM /Online /Add-Package /PackagePath:C:\Packages\Microsoft-NanoServer-IIS-Package.cab
(↑これはなぜか失敗)
C:\> DISM /Online /Add-Package /PackagePath:C:\Packages\en-us\Microsoft-NanoServer-IIS-Package_en-us.cab
(↑これは成功)
C:\> DISM /Online /Add-Package /PackagePath:C:\Packages\Microsoft-NanoServer-IIS-Package.cab
(↑こんどは成功)
C:\> net start w3svc
The world Wide Web Publishing Service service is starting.
The world Wide Web Publishing Service service was started successfully.
C:\> exit

(↑ここまで コンテナー mynanoiis01 の cmd)

C:\> docker commit mynanoiis01 mynanoiis
C:\> docker run --name mynanoiis02 -it -p 80:80  --isolation=hyperv mynanoiis cmd

(↓ここから コンテナー mynanoiis02 の cmd)
C:\> net start w3svc
System error 1068 has occurred.

The dependency service or group failed to start.
Commit 前のコンテナーと Commit イメージから作成したコンテナーのサービスを比較すると、サービスが少ない。Windows Process Activation Service が動いていないのは、W3SVC にとって致命的なような... ちなみに、net start "Windows Process Activation Service" すると、"System error 5 has occurred"でこちらもエラー。

なお、Nano Server をコンテナー ホストとしてセットアップして、nanoserver イメージから Windows Server Container を作成した場合は、Commit しても期待どうりに動きました。



Nano Serverのコンテナー ホストで Windows Server コンテナーとして作成したイメージを Docker Hub の Private リポジトリに push して、Windows Server のコンテナー ホストに pull して Hyper-V Container として動かしてみると... 

やっぱり駄目でした。
もしかしたら、Docker Hub の Microsoft リポジトリに microsoft/iis:windowsservercore はあるのに、microsoft/iis:nanoserver が無いのは、この問題が関係しているのかも。


メモ:
Docker Hub の Private リポジトリから pull したときに "The Repository is Locked, access denied" で失敗するのは、Free プラン (Private リポジトリ 1 つまで) だから。

追記:
こちらに気になることが...
[URL] https://msdn.microsoft.com/en-us/virtualization/windowscontainers/reference/app_compat
IIS does not install using dism directly. Do unattended installation of IIS using dism commands.
IIS on Nano Server (https://technet.microsoft.com/en-us/library/mt627783.aspx) を参考に、dism /online /apply-unattend:.\unattend.xml で IIS をインストールしてみましたが、やっぱり commit したイメージからコンテナーを作成すると、System error 1068 が発生。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。