Powershellを使用して、Windows 2016 ServerTP4のDockerコンテナーにWindows機能「NetworkController
」をインストールしようとしています。 「Add-WindowsFeature NetworkController
」を実行すると、次のメッセージが表示されます。
「インストールプロセスを完了するには、このサーバーを再起動する必要があります。」
Get-WindowsFeatureを使用して(まだ何もしなくても)再度確認すると、インストール状態は「InstallPending」になっています。
「このサーバーを再起動する」が100%を意味するかどうかはわかりませんが、再起動するものが他にないため、ホストマシンを再起動することになっていると思います(コンテナ自体は単なるコンテナであり、VM Hyper-Vアプローチと同様)。
だから私は次のアプローチを試してみます:
アプローチ(1)
docker stop iisdemo
を使用してDockerコンテナーを停止し、ホストマシン(Windows 2016サーバー)を再起動してから、docker start iisdemo
を使用してDockerコンテナーを再起動します。
しかし、NetworkControllerを確認しても、まだインストールされていません。
アプローチ(2)
2回目の試行では、機能を追加してから、Dockerコンテナーを再起動しますを実行せずに、Windows2016サーバーを再起動します
dock restart iisdemo
。
Get-WindowsFeature *network*
を介して機能をチェックしようとすると、データ収集プロセスが57%で停止し、コンテナーが単独で存在するという奇妙なことが起こります。
Dockerイメージに再度アタッチすると、次のようになります。
> docker start iisdemo
> docker attach iisdemo
> powershell
> Get-WindowsFeature *network*
私は始めたところに戻っています:
アプローチ(3)
別の3番目のアプローチは明らかに機能しないはずですが、とにかくそれを試し、Dockerコンテナーをまったく停止せずにWindows2016サーバー/ホストを再起動しました。言うまでもなく、これも機能しませんでした(アプローチ1と同じ動作で、コンテナーはデータ収集の57%で終了します)。
アプローチ(4)
コンテナ内で「shutdown -r -f -t 10
」を実行しても役に立ちません。再起動後も、NetworkController
はインストールされていません。
注:DockerコンテナーとWindowsコンテナー(Powershellコマンドで作成および管理)の両方を使用しようとしましたが、違いはありません。
Neil Peterson vom MicrosoftがTwitterでこれについて返信しましたが、これはバグのようです: https://Twitter.com/nepeters/status/705451007233257472?cn=cmVwbHk%3D&refsrc=email