Misc.

2018/06/28

Windows 10 Insider Preview 17704 と New Container Image "windows-insider"

昨日(今日)リリースされた Windows 10 Insider Preview Build 17704.1000 の新機能の 1 つに、microsoft/nanoserver と microsoft/windowsservercore に続く、第三のベース OS イメージ mcr.microsoft.com/windows-insider(10.0.17704.1000)の話が...

Announcing Windows 10 Insider Preview Build 17704
[URL] https://blogs.windows.com/windowsexperience/2018/06/27/announcing-windows-10-insider-preview-build-17704/
Insider preview: Windows container image(Virtualization Blog)
[URL] https://blogs.technet.microsoft.com/virtualization/2018/06/27/insider-preview-windows-container-image/


ささっと試してみました。そして見たままを報告。

まずは、イメージの pull。姉さん。もう1時間過ぎてます。







(↑なんて Windows イメージと同じところに Linux の ubuntu イメージあるの?って疑問に思う方は → 2018/04/16 の投稿Windows 10 バージョン1709/1803 と Linux コンテナー (LCOW)ご覧ください)

ちなみに、上の microsoft/windowsservercore:1803 (4.55GB)のダウンロードのときはこれくらい。


母さん。やっと終わりました。 8GB 超えです。OS ビルドは 17704.1000 で、この Docker ホストの Windows 10 Insider Preview と同じ。
Hyper-V コンテナー(ホストが Windows 10 だから)としてコンテナーを作成して実行してみると... 君の名は Windows 10 Enterprise、お年は ビルド 17704.1000。




で何ができるのか??? 開発者さんにとっては、Windows のフル環境(フル API、フル コンポーネント)が使えるのでうれしいのかもしれません。私にはよくわかりませんが、先ほどの Virtualization Blog には...

"... However, not all applications could be easily containerized, in some cases due to missing components like proofing support which is not included in Windows Server Core.
Others wanted to leverage containers to run automated UI tests as part of their CI/CD processes or use other graphics capabilities like DirectX which are not available within the other container images. ..."

(CI/CD = 継続的インテグレーション/継続的デリバリー)
と書いてますが、さすがにこのサイズだと、普通に仮想マシンの展開を自動化するのと変わらいような気もするし、問題がおきたときいろいろ調べるのにも都合がいいような気がするし...

ちなみに、GUI アプリは起動できますが、当然、GUI が使えるわけではないのでアクセスできません。どっかーのウィンドウ ステーション(WinSta)で動いているんだと思います。

もしかして、リモートデスクトップ接続できたりして? って思い、ごにょごにょしましたが、できませんでした。そもそも 3389 ポートをリスンしてない。できるのか、できないのか分かりませんが、私にはできませんでした。(docker run の -p 8339:3389 は RDP 接続できたらなぁと期待しての指定でした。)


冷静に考えたら、docker run で実行したプロセス(↑の場合は powershell.exe)とその子プロセス以外は、虚構みたいなもんですもんね。できなくて当然なのかも。Windows Server コンテナーならホスト上のプロセス(CExecSvc.exe の子プロセス)、Hyper-V コンテナーの場合は UtilityVM 上のプロセス。(すごく初期の頃(Windows Server 2016 Technical Preview 3?)は RDP 有効化して接続できたんですけど、正式版ではできなくなりましたし、実装も独自 or Docker から Docker 一本に大きく変わりました。)
 
おまけ

初回のコンテナー開始時、"ハイパーバイザーが動いてないぞ”みたいに言われて失敗。Hyper-V マネージャーで既存の仮想マシン(Docker for Windows には無関係の)を開始しようとしても、エラーで失敗。


Hyper-V & Docker ホストとして動いていたやつを、ビルド アップデートでアップグレードしてきたのですが、どこかのタイミングでHV ホスト サービス(HvHost)がクラッシュするようになってたようです。HV ホスト サービスを手動で開始しようとしても、「エラー 31: システムに接続されたデバイスが機能していません。」だと。

Hyper-V の機能を削除、再度有効化することで回復できました(コンテナーの機能と Docker for Windows はそのままで)。確か、こんな感じだったかな?

Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V
再起動
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
再起動

ご参考まで。


0 件のコメント:

コメントを投稿

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