‫わかりました｡
‫今週は､ Q&Aの前に､ Windows Dockerデスクトップと､ Windows
‫10上でのDockerの実行に関する新機能や強化についてお話ししたいと思います｡
‫もしあなたがWindowsユーザーで､ Windows 10 proまたはenterpriseを使用しているなら､
‫幸運にもDocker desktopを使用することができます｡
‫もちろん､ 古いバージョンのWindowsでは､ Dockerデスクトップを使うことはできませんが､ Windows
‫10 proになったら､ Windowsコンテナをどのように実行するかということが重要になります｡
‫Linuxコンテナについては何年も前から話していますが､ Windows上でLinuxコンテナを実行することは可能です｡
‫しかし､ 数年前､ MicrosoftはWindowsコンテナという新しい概念を打ち出しました｡
‫これは､ Windowsバイナリをコンテナ内のWindowsの中で起動させるというものです｡
‫技術的には､ バックグラウンドで起きているのはWindowsサーバーのカーネルです｡
‫Windows 10をデフォルトで使用していて､ 例えばWindows Microsoft sequelサーバを起動すると､
‫そのコンテナを起動するときに､ 小さな小さなコアサーバやNanosサーバ（Windows Server 2016や2019の異なるタイプの､
‫本質的に非常に小さなサーバ）をスピンアップし､ それらを起動してからコンテナを起動することになるわけです｡
‫今なら､ サーバーの完全なエクスペリエンスを得ることができますし､ Windows 10のカーネルとは少し異なるサーバーカーネルを手に入れることができるので､
‫素晴らしいことだと思います｡
‫IRSの機能やサーバーから得られるものはすべてWindows
‫10で得られるものとは異なりますが､ ハイパーVアイソレーションと呼ばれる､ より多くのリソースを消費するというマイナス面はあります｡
‫そうですね｡
‫新しいOSのために､ カーネルを全部スピンアップしなければならないのです｡
‫理想的なのは､ 単純なEMCを動かしたいだけなら､ 例えばドットネットのEMCなら､ コマンドラインだけで､ 実際にはWebサイトや何かのように見えるわけではありませんし､
‫コンテナやWindowsコンテナで何らかのバックグラウンドプロセスを実行する必要があるだけなら､ フルVMハイパーV分離は必要ないでしょう｡
‫このプロセス・アイソレーションがついにWindows 10に導入されたわけですが､ これが意味するところは､ いくつかの機能をオンにして有効にすると､
‫Docker Desktopはハイパーバイザー・コンテナをスピンアップすることなく､ Windows 10上でWindowsバイナリをネイティブに実行できるようになる､
‫ということです｡
‫そこで､ このようなことが起こった経緯を知りたい方のために､ 実際に今､ PRしていることがあります｡
‫これはプルリクエストとゲットハブで､
‫この機能が有効化されたことで､ ある種のアクションが起こったところです｡ 率直に言って､
‫私はこれが起こるだろうと思います｡
‫その話は､ 今では明らかに変わってきていますね｡
‫だから､ 2018年の後半は後回しにしています｡
‫この機能はDocker desktopの最新版で追加されましたが､
‫Docker captainの一人で､ 現在は医師のStefonのブログ記事で､
‫この機能の開始方法とセットアップ方法について書かれています｡
‫彼の記事を読んで､ ポストとサンプルコマンドを確認し､ 自分のマシンで実行すれば､
‫基本的にはハイパーVサーバーを立ち上げることなく､ Windows実行ファイルとWindowsコンテナを実行することができます｡
‫Dockerデスクトップを動かす機能は､ たくさん知っているので､ まだありません｡
‫このように考えていた方もいらっしゃるのではないでしょうか｡
‫ハイパーVを搭載していないWindows 10 homeでDocker desktopを実行できるようになったということでしょうか｡
‫それを今すぐにでも実現できないかと､ すぐにキャプテンチャットでみんなで質問したんです｡
‫それはやはり無理な話です｡
‫デスクトップは､ インストールとその作業を取得するために､ このすべてのハイパーVを実行する必要がありますが､ プロセスの分離の価格の多くとして､
‫このプロセスを行うことが可能である｡
‫ハイパーVがないと何とも言えませんね｡
‫だから私たちは､ もしかしたらどこかで可能性があるかもしれないと期待していますし､ 今年はもしかしたらそのDockerデスクトップがWindows
‫10 home上のWindowsコンテナでプロセスハイスクールのアイソレーションだけを実行する可能性もあるかもしれません｡
‫つまり､ このシナリオでは､ もしそれがうまくいったとしても､ Linuxコンテナを実行することはできませんし､
‫Hyper VアイソレーションでWindowsコンテナを実行することもできないのです｡
‫特に､ hyper vがないとLinuxコンテナを動かせないというのは､
‫大きな障害です｡
‫これでは､ やはり本当に限界でしょう｡
‫しかし､ Dockerデスクトップを実行するためにはWindows 10 proが必要だという制限に､
‫ちょっとした亀裂が入ったようなものです｡
‫それが実現するかどうかはわからない｡
‫つまり､ これらの製品は大部分がオープンソースであり､ Dockerデスクトップも完全なオープンソースではありませんが､
‫オープンソースです｡
‫完全にオープンソースのエンジンに依存します｡
‫ですから､ オープンソースの貢献が必要ですし､ Windowsチームにとって本当に大きなプライオリティとなります｡
‫そして､ Docker Docker DesktopとDocker Enterpriseのターゲットとなる市場の経験もお持ちです｡
‫私の感覚では､ Windows 10 homeでは可能かもしれませんが､ すべての企業でWindows
‫10 pro以上が使われているため､ いつまでたっても見ることはできません｡
‫通常､ 企業向けライセンスは､ Windows 10 enterpriseを取得することを意味します｡
‫ですから､ Windows 10の家庭用市場は､ どちらかというと趣味性の高い市場でしょう｡
‫私は教師として､ 生徒が自宅で目撃し､ 職場でプロを使い､ おそらく自宅のマシンを使ってDockerを学んでいることを知っています｡
‫だから､ プロとはいえ､ 家で使うこともあるのに残念です｡
‫しかし､ Windows Dockerデスクトップチームの最優先事項にはならないような気がしますが､
‫どうでしょう｡
‫そうですね｡
‫期待しない方がいい｡
‫インサイダー情報も何もないんですけどね｡
‫ただ､ この手のものは一つ複雑で､ なかなかうまくいかないこともあるんです｡
‫そして､ このようなものは､ 早く実現することが大前提となります｡
‫だから､ 世界の大企業がこぞってWindows 10の家庭用互換性を求めているのは､ おそらく想像もつかないことでしょう｡
‫だから､ でも､ わからないんです｡
‫だから､ それをチェックするんです｡
‫もちろん､ ツイートをズームアウトすることもできますし､ DockerやMasteryのSlackにいる人は､
‫これがうまくいくかどうかを教えてください｡
‫また､ Windowsコンテナで作業している場合､ リソースを節約し､ コンテナのスピンアップ・スピンダウンがより速くできるようになると思います｡