WEBVTT


00:00:00.274 --> 00:00:03.741
[コンテナー チャンネル]

00:00:03.741 --> 00:00:07.446
[コンテナーの基礎: Hyper-V コンテナー]

00:00:07.446 --> 00:00:08.839
[コンテナーの基礎: Hyer-V コンテナー: コンテナー
チャンネル: Microsoft] >> こんにちは、コンテナー チャンネルの

00:00:08.839 --> 00:00:09.963
[テクニカル エバンジェリスト: Matt McSpirit: コンテナー
チャンネル: Microsoft] 第 5 回へようこそ。

00:00:09.963 --> 00:00:12.862
[テクニカル エバンジェリスト: Matt McSpirit: コンテナー
チャンネル: Microsoft] 私は Matt McSpirit、データセンター関連のテクニカル エバンジェリストです。

00:00:12.862 --> 00:00:14.460
[テクニカル エバンジェリスト: Matt McSpirit:
コンテナー チャンネル: Microsoft] 今回も、コンテナー スペースのコンテンツ開発者である

00:00:14.460 --> 00:00:17.285
[コンテナー チャンネル: Microsoft: シニア コンテンツ開発者:
Neil Peterson ] Neil Peterson と一緒にお届けします。

00:00:17.285 --> 00:00:20.285
[コンテナー チャンネル: Microsoft: シニア
コンテンツ開発者: Neil Peterson] コンテナーの基礎シリーズの続きとして、

00:00:20.285 --> 00:00:26.018
[コンテナーの基礎: Hyper-V コンテナー] 今回は特に

00:00:26.018 --> 00:00:27.680
[コンテナーの基礎: Hyper-V コンテナー: コンテナー
チャンネル: Microsoft] Hyper-V コンテナーについて学びます。

00:00:27.680 --> 00:00:30.245
[コンテナーの基礎: Hyper-V コンテナー: コンテナー
チャンネル: Microsoft] Hyper-V コンテナーについて少し詳しく、

00:00:30.245 --> 00:00:32.307
[コンテナーの基礎: Hyper-V コンテナー] 知っておくべき情報を教えてください。

00:00:32.307 --> 00:00:34.071
[コンテナー チャンネル: Microsoft] >> はい。Matt、ありがとうございます。

00:00:34.072 --> 00:00:35.072
[コンテナー チャンネル: Microsoft]

00:00:36.972 --> 00:00:40.022
[Hyper-V コンテナー: Windows サーバー
コンテナー - プロセス、名前空間およびネットワーク分離テクノロジによる分離性] まず、Hyper-V コンテナーとは何かについて考えてみたいと思います。

00:00:40.022 --> 00:00:41.341
[Hyper-V コンテナー: Windows サーバー
コンテナー - プロセス、名前空間およびネットワーク分離テクノロジによる分離性] デモをいくつか見る前に、

00:00:41.341 --> 00:00:44.234
[Hyper-V コンテナー: Windows サーバー
コンテナー - プロセス、名前空間およびネットワーク分離テクノロジによる分離性] 少し簡単に宣伝させてください。

00:00:44.234 --> 00:00:47.633
[Hyper-V コンテナー: Windows サーバー コンテナー
- プロセス、名前空間およびネットワーク分離テクノロジによる分離性] TP3 では、Windows サーバー コンテナーを実現しました。

00:00:47.633 --> 00:00:51.575
[Hyper-V コンテナー: Windows サーバー コンテナー
- プロセス、名前空間およびネットワーク分離テクノロジによる分離性] そして Windows サーバー コンテナーは、

00:00:51.575 --> 00:00:53.899
[Hyper-V コンテナー: Windows サーバー
コンテナー - プロセス、名前空間およびネットワーク分離テクノロジによる分離性] 基本的にカーネルを

00:00:53.899 --> 00:00:55.086
[Hyper-V コンテナー: Windows サーバー
コンテナー - プロセス、名前空間およびネットワーク分離テクノロジによる分離性] コンテナー ホストと共有します。

00:00:55.086 --> 00:00:56.149
[Hyper-V コンテナー: Windows サーバー
コンテナー - プロセス、名前空間およびネットワーク分離テクノロジによる分離性] >> はい。

00:00:56.149 --> 00:00:57.168
[Hyper-V コンテナー: Windows サーバー
コンテナー - プロセス、名前空間およびネットワーク分離テクノロジによる分離性] >> 分離は、

00:00:57.168 --> 00:01:00.418
[Hyper-V コンテナー: Windows サーバー
コンテナー - プロセス、名前空間およびネットワーク分離テクノロジによる分離性] 一連のプロセス、名前空間、

00:01:00.418 --> 00:01:03.915
[Hyper-V コンテナー: Windows サーバー
コンテナー - プロセス、名前空間およびネットワーク分離テクノロジによる分離性] そしてネットワーク分離テクノロジによって作成されます。

00:01:03.915 --> 00:01:06.258
[Hyper-V コンテナー - 各コンテナーを高度に最適化された仮想マシン内に配置することで向上する分離性]
TP4 でリリースされた Hyper-V コンテナーは、

00:01:06.258 --> 00:01:09.392
[Hyper-V コンテナー - 各コンテナーを高度に最適化された仮想マシン内に配置することで向上する分離性] 高度に最適化された仮想マシン内に

00:01:09.392 --> 00:01:10.543
[Hyper-V コンテナー - 各コンテナーを高度に最適化された仮想マシン内に配置することで向上する分離性] コンテナーを本質的にカプセル化して

00:01:10.543 --> 00:01:13.516
[Hyper-V コンテナー - 各コンテナーを高度に最適化された仮想マシン内に配置することで向上する分離性] 分離性の追加レイヤーを提供することで、

00:01:13.516 --> 00:01:17.225
[Hyper-V コンテナー -
各コンテナーを高度に最適化された仮想マシン内に配置することで向上する分離性] Windows サーバー コンテナーが持つ

00:01:17.562 --> 00:01:19.912
[Hyper-V コンテナー - 各コンテナーを高度に最適化された仮想マシン内に配置することで向上する分離性] 分離性を向上します。

00:01:19.912 --> 00:01:20.937
[Hyper-V コンテナー -
各コンテナーを高度に最適化された仮想マシン内に配置することで向上する分離性] >> そうですね。

00:01:20.937 --> 00:01:22.102
[Hyper-V コンテナー - 各コンテナーを高度に最適化された仮想マシン内に配置することで向上する分離性]
>> それで Hyper-V コンテナーと呼ばれるのです。

00:01:22.102 --> 00:01:23.119
[Hyper-V コンテナー -
各コンテナーを高度に最適化された仮想マシン内に配置することで向上する分離性] >> そうですね。

00:01:23.119 --> 00:01:24.826
[Hyper-V コンテナー - 各コンテナーを高度に最適化された仮想マシン内に配置することで向上する分離性] それで以前

00:01:24.826 --> 00:01:25.856
[Hyper-V コンテナー -
各コンテナーを高度に最適化された仮想マシン内に配置することで向上する分離性] コンテナー ホストの話をしたとき、

00:01:25.856 --> 00:01:26.963
[Hyper-V コンテナー - 各コンテナーを高度に最適化された仮想マシン内に配置することで向上する分離性] 物理マシン、または

00:01:26.963 --> 00:01:27.973
[Hyper-V コンテナー - 各コンテナーを高度に最適化された仮想マシン内に配置することで向上する分離性] 仮想マシンのことを言っていたわけですね。

00:01:27.973 --> 00:01:30.168
[コンテナー チャンネル: Microsoft] これら異なるすべてのコンテナーを実質的にサポートし実行する

00:01:30.168 --> 00:01:33.537
[コンテナー チャンネル] OS ですね。

00:01:33.537 --> 00:01:34.744
[コンテナー チャンネル: Microsoft]
>> はい。そのとおりです。>> わかりました。

00:01:34.744 --> 00:01:37.529
[コンテナー チャンネル: Microsoft] それで、2 種類あるわけですね。Windows Server
2016 の Technical Preview 3 の

00:01:37.529 --> 00:01:40.034
[コンテナー チャンネル: Microsoft]
Windows サーバー コンテナー、

00:01:40.034 --> 00:01:43.846
[コンテナー チャンネル: Microsoft] それから 2016 の
Technical Preview 4 の Hyper-V コンテナー。

00:01:43.846 --> 00:01:44.848
[コンテナー チャンネル: Microsoft]
>> はい。>> なるほど。わかりました。

00:01:44.848 --> 00:01:45.848
[コンテナー チャンネル：Microsoft] >> そのとおりです。

00:01:45.848 --> 00:01:48.954
[コンテナー チャンネル： Microsoft]
Windows サーバー コンテナーとは何か、

00:01:48.954 --> 00:01:52.456
[コンテナー チャンネル: Microsoft] Hyper-V コンテナーとは何かについて、非常に簡単に説明しました。

00:01:52.456 --> 00:01:56.067
[コンテナー チャンネル] 今度は、これら 2 つを実際に使いながら観察して

00:01:56.067 --> 00:01:57.188
[コンテナー チャンネル: Microsoft] 比較してみたいと思います。

00:01:57.188 --> 00:01:58.729
[コンテナー チャンネル: Microsoft] >> いいですね。見てみましょう。

00:01:58.729 --> 00:01:59.783
[コンテナー チャンネル: Microsoft] >> では、

00:01:59.783 --> 00:02:02.377
[コンテナー チャンネル: Microsoft] 3 つの簡単なデモをお見せします。

00:02:02.377 --> 00:02:04.947
[Hyper-V コンテナー デモ]
まず最初に、Windows サーバー コンテナーを作成して、

00:02:04.947 --> 00:02:07.681
[Hyper-V コンテナー デモ] コンテナー ホストの視点から実際に見てみます。

00:02:07.681 --> 00:02:10.217
[Hyper-V コンテナー デモ] ホスト上で実行されているプロセスを見て、

00:02:10.217 --> 00:02:13.042
[Hyper-V コンテナー デモ] これらをコンテナーそのものに関連付けます。

00:02:13.042 --> 00:02:15.487
[Hyper-V コンテナー デモ] それから、Hyper-V コンテナーに対してもまったく同じことをやってみて、

00:02:15.487 --> 00:02:16.639
[Hyper-V コンテナー デモ] その違いを見てみます。

00:02:16.639 --> 00:02:17.647
[Hyper-V コンテナー デモ] >> はい。

00:02:21.013 --> 00:02:23.666
[Hyper-V コンテナー デモ] このプロセスのほとんどでは
PowerShell を使います。PowerShell、そして Docker を使って見てみます。

00:02:23.666 --> 00:02:28.617
[Hyper-V コンテナー デモ]
そして最後に、Windows サーバー コンテナーを作成してから、

00:02:28.617 --> 00:02:31.375
[Hyper-V コンテナー デモ]
そのコンテナーを Hyper-V コンテナーに変換してみます。

00:02:31.375 --> 00:02:34.822
[Hyper-V コンテナー デモ]
>> 今の話では、PowerShell を使い、

00:02:34.822 --> 00:02:37.644
[Hyper-V コンテナー デモ]
その後 Docker を使うということでしたね。

00:02:37.644 --> 00:02:39.738
[Hyper-V コンテナー デモ] 以前の回でこんな疑問が出てきました。

00:02:39.738 --> 00:02:41.094
[Hyper-V コンテナー デモ] 困らせるような質問をしたいわけではないのですが...

00:02:43.568 --> 00:02:45.329
[Hyper-V コンテナー デモ] 「どのような場合に、

00:02:45.329 --> 00:02:47.234
[Hyper-V コンテナー デモ] どちらを使えばいいのでしょうか。

00:02:47.234 --> 00:02:48.297
[Hyper-V コンテナー デモ]
PowerShell と Docker の

00:02:48.297 --> 00:02:51.935
[Hyper-V コンテナー デモ] どちらを使うべきでしょうか。多くの人が考える点について

00:02:51.935 --> 00:02:53.545
[Hyper-V コンテナー デモ] 大まかに教えていただけますか」

00:02:53.545 --> 00:02:55.781
[Hyper-V コンテナー デモ] >> はい、わかりました。お答えしてみます。

00:02:55.781 --> 00:02:57.161
[Hyper-V コンテナー デモ]
>> はい。>> まだ始まったばかりで、

00:02:57.161 --> 00:03:00.103
[Hyper-V コンテナー デモ] プレビューの段階ですが、

00:03:00.103 --> 00:03:02.935
[Hyper-V コンテナー デモ]
コンテナーを扱う際に PowerShell を使えば、PowerShell の経験を得ることができます。

00:03:02.935 --> 00:03:05.987
[コンテナー チャンネル: Microsoft] これから、私が書いたスクリプトがたくさん出てきます。

00:03:05.987 --> 00:03:08.347
[コンテナー チャンネル] それを使って複数のコンテナーを動かします。

00:03:08.347 --> 00:03:13.308
[コンテナー チャンネル] コンテナーを操作する際に私自身が慣れている言語を使います。

00:03:13.308 --> 00:03:16.178
[コンテナー チャンネル] 私は
Windows の人間で、これまで PowerShell を使ってきたので

00:03:16.178 --> 00:03:17.209
[コンテナー チャンネル] 私にとっては自然なことなのです。

00:03:17.209 --> 00:03:18.217
[コンテナー チャンネル] >> なるほど。

00:03:18.217 --> 00:03:22.150
[コンテナー チャンネル] >> そして、Docker も使われるようになってしばらく経ちますから、

00:03:22.150 --> 00:03:27.880
[コンテナー チャンネル] よく考えられて確立されたコンテナー管理用のツールがあります。

00:03:27.880 --> 00:03:31.882
[コンテナー チャンネル] Windows
Server と Hyper-V コンテナーでもそうした機能を使えます。

00:03:31.882 --> 00:03:34.760
[コンテナー チャンネル] つまり、私が言いたいのは

00:03:34.760 --> 00:03:37.788
[コンテナー チャンネル] 自分にとって管理するのに都合の良い方を選べばいいということです。

00:03:37.788 --> 00:03:40.308
[コンテナー チャンネル] >> ということは、もし特別な経験がなくて、

00:03:40.308 --> 00:03:42.592
[コンテナー チャンネル: Microsoft] Docker を使ったことがないのであれば、PowerShell

00:03:42.592 --> 00:03:45.791
[コンテナー チャンネル] で良いと思うかもしれない。ただ、Docker のツールは

00:03:45.791 --> 00:03:48.898
[コンテナー チャンネル] 今言われたようにもう少し成熟していますから、特に Linux に関しては

00:03:48.898 --> 00:03:52.288
[コンテナー チャンネル] 現在 PowerShell でできる以上のことを実現でき、

00:03:52.288 --> 00:03:54.256
[コンテナー チャンネル] 確かに機能が充実しています。

00:03:54.256 --> 00:03:57.019
[コンテナー チャンネル] でも、Windows サーバー コンテナーについては、どちらもそれほど違いはないということですね。

00:03:57.019 --> 00:03:58.306
[コンテナー チャンネル] >> そのとおりです。>> できることはたくさんありますね。

00:03:58.306 --> 00:03:59.352
[コンテナー チャンネル] >> そうです。

00:03:59.352 --> 00:04:00.932
[コンテナー チャンネル] >>
これから Neil のデモを見ていくと、

00:04:00.932 --> 00:04:02.837
[コンテナー チャンネル] 微妙な違いがあることに気づくでしょう。

00:04:02.837 --> 00:04:05.329
[コンテナー チャンネル] それらはすでに以前のデモでも見たものです。

00:04:05.329 --> 00:04:08.005
[コンテナー チャンネル] では、最初のデモを見せていただけますか。

00:04:08.005 --> 00:04:09.371
どんなデモでしょうか。

00:04:09.371 --> 00:04:13.136
>> はい。まず、Windows サーバー コンテナーを作成したいと思います。

00:04:13.136 --> 00:04:16.546
実はすでに、PowerShell の準備はできています。

00:04:16.546 --> 00:04:17.568
>> はい。

00:04:17.568 --> 00:04:20.446
>> では Windows
サーバー コア イメージに対して新しいコンテナーを作成します。

00:04:20.446 --> 00:04:21.511
>> はい。

00:04:21.511 --> 00:04:23.202
>> 以前のビデオでも汎用の Windows サーバー コンテナーを作成しましたから、

00:04:23.202 --> 00:04:25.626
皆さんももう慣れていますね。

00:04:25.626 --> 00:04:26.657
>>はい。そうでしたね。そのはずです。

00:04:26.657 --> 00:04:29.598
ここではあまり細かく説明することはしませんが、

00:04:29.598 --> 00:04:32.193
以前のビデオで扱った点を取り上げます。

00:04:32.193 --> 00:04:34.440
それではコンテナーを作成します。

00:04:34.440 --> 00:04:37.571
まず、コンテナー内で

00:04:37.571 --> 00:04:38.580
プロセスを開始します。

00:04:38.580 --> 00:04:41.936
そしてコンテナーに対してコマンドを実行します。

00:04:41.936 --> 00:04:44.053
基本的にはローカル ホストに対して ping を実行します。

00:04:44.053 --> 00:04:45.078
>> なるほど。

00:04:45.078 --> 00:04:48.237
>> ping プロセスを開始して、それが実行し続けるようにします。

00:04:48.237 --> 00:04:49.768
>> ただこれは何でもいいんですよね。

00:04:49.768 --> 00:04:52.300
何かのスクリプトとか、何かを開始する必要がある

00:04:52.300 --> 00:04:53.674
サービスとか。

00:04:53.674 --> 00:04:56.472
>> はい。そうです。

00:04:56.472 --> 00:05:01.547
ではプロセスが開始している間に、今の状況について少し説明しましょう。

00:05:01.547 --> 00:05:03.860
今、コンテナー ホストで作業をしています。

00:05:03.860 --> 00:05:06.817
ですからコンテナー ホスト上にいるわけです。

00:05:06.817 --> 00:05:09.921
先ほどホスト上でコンテナーを開始しましたが、そこで作業をしています。

00:05:09.921 --> 00:05:11.002
>> はい。

00:05:11.002 --> 00:05:14.750
>> それで今度はこれを最小化して、ホストを見てみます。

00:05:14.750 --> 00:05:18.917
ここまでスクロールすると、プロセス

00:05:18.917 --> 00:05:20.084
ping.exe が実行されていることがわかります。

00:05:20.084 --> 00:05:21.098
>> はい。

00:05:21.098 --> 00:05:22.892
>> ですからコンテナー ホスト上で、このプロセスを確認できます。

00:05:22.892 --> 00:05:25.550
>> はい。>> さらに、

00:05:25.550 --> 00:05:27.248
>> コンテナー内で実行されているにもかかわらず、ということですね。

00:05:27.248 --> 00:05:28.257
>> そうです。>> わかりました。

00:05:28.257 --> 00:05:30.422
>>はい。そしてここが以前と違うところです。

00:05:30.422 --> 00:05:33.100
Windows サーバー コンテナーと Hyper-V コンテナーとの大きな

00:05:33.100 --> 00:05:34.619
違いがここにあります。

00:05:34.619 --> 00:05:39.219
>> これから実際にこのコンテナーの中のセッションに入っていきます。

00:05:45.131 --> 00:05:48.358
ここで見ているのは、コンテナー内のリモート PowerShell セッション

00:05:48.358 --> 00:05:49.388
です。

00:05:49.388 --> 00:05:51.736
>> ここで ping と表示されているのは、コンテナーを呼び出したからですね。

00:05:51.736 --> 00:05:53.109
>> そうです、コンテナーの ping を呼び出したからです。

00:05:53.109 --> 00:05:55.805
>> はい。

00:05:55.805 --> 00:05:57.900
>> そして Get-Process を実行してみます。

00:06:00.690 --> 00:06:04.370
少し時間がかかっています。

00:06:04.370 --> 00:06:06.377
>> わかります。PowerShell では実行に時間がかかることが

00:06:06.377 --> 00:06:07.405
>> ありますね。>> はい。

00:06:07.405 --> 00:06:09.338
>> ちょうど実行されましたね。

00:06:09.338 --> 00:06:10.354
>> はい。

00:06:10.354 --> 00:06:16.639
コンテナーの表示の中で、ping プロセスを見ることができます。

00:06:16.639 --> 00:06:20.165
プロセス ID が 4556 であることも確認できます。

00:06:20.165 --> 00:06:22.558
これはホストの表示で確認した

00:06:22.558 --> 00:06:23.740
プロセス ID と同じです。

00:06:23.740 --> 00:06:26.196
さらに、このホストから

00:06:26.196 --> 00:06:29.900
[Task Manager] プロセスをクラッシュすれば、消えます。

00:06:29.900 --> 00:06:32.410
そうでしたね。そしてこっちでもう一度 Get-Process を実行すると、

00:06:32.410 --> 00:06:33.480
>> 消えます。>> はい。

00:06:33.480 --> 00:06:34.638
>> 消えましたね。

00:06:34.638 --> 00:06:38.025
>> ですから、ここで共有カーネルを確認できます。

00:06:38.025 --> 00:06:40.847
つまり、ここで分離性は発生しているのですが、

00:06:40.847 --> 00:06:44.460
まだ一部がコンテナー ホストから見えるようになっていることがわかります。

00:06:44.460 --> 00:06:45.501
それで...

00:06:47.038 --> 00:06:50.948
先ほど話したように、Hyper-V コンテナーはここを大きく変えます。

00:06:50.948 --> 00:06:56.058
共有カーネル アーキテクチャを持つ代わりに、

00:06:56.058 --> 00:06:59.849
コンテナーを仮想マシンの内部に入れてしまいます。

00:06:59.849 --> 00:07:01.237
高度に最適化された仮想マシンです。

00:07:01.237 --> 00:07:05.202
>> ただこれは、管理者がやらなければいけないことではないですよね。

00:07:05.202 --> 00:07:06.820
つまり、Hyper-V マネージャーに行って、

00:07:06.820 --> 00:07:12.497
特殊な VM を作成して、読み込んで起動して、その中でコンテナーの作成を開始して、

00:07:12.497 --> 00:07:15.221
その全体が新しい VM の中でカプセル化される。

00:07:15.221 --> 00:07:16.271
こういうことは考えなくていいんですよね。

00:07:16.271 --> 00:07:18.782
>> そのとおりです。そこが素晴らしいところです。

00:07:18.782 --> 00:07:22.173
管理の仕方はまったく同じです。

00:07:22.173 --> 00:07:23.750
>> はい。

00:07:23.750 --> 00:07:26.091
>> 1 つだけ小さな変更点がありますが、それをこれから見ていきます。

00:07:26.091 --> 00:07:27.112
>> はい。わかりました。

00:07:27.112 --> 00:07:29.082
>> それでは先に進んで、これを実行します。

00:07:29.082 --> 00:07:30.742
そしてここで何をしているのかを説明します。

00:07:30.742 --> 00:07:33.310
大きな違いがないかどうかも確かめます。

00:07:33.310 --> 00:07:34.969
さあ、また新しいコンテナーを実行します。

00:07:34.969 --> 00:07:38.429
コンテナーに hypv という名前を付けています。

00:07:38.429 --> 00:07:41.300
コンテナー イメージを選択しますが、ここで

00:07:41.300 --> 00:07:42.974
Nano Server イメージを選択していることに注目してください。

00:07:42.974 --> 00:07:44.387
>> それがこのコンテナーのベース イメージですね。

00:07:44.387 --> 00:07:47.985
>> そうです。それで、TP4 Hyper-V コンテナーは

00:07:47.985 --> 00:07:49.854
ナノ サーバーのベース イメージを実行する必要があります。

00:07:49.854 --> 00:07:52.771
>> はい。わかりました。

00:07:52.771 --> 00:07:56.655
>> ここに変更点があります。

00:07:56.655 --> 00:08:00.577
これは Hyper-V コンテナーなので、ランタイムとして Hyper-V を選択します。

00:08:00.577 --> 00:08:03.302
それで、ここには基本的に大きな違いがあります。

00:08:03.302 --> 00:08:04.785
Windows サーバー コンテナーと

00:08:04.785 --> 00:08:06.865
Hyper-V コンテナーの違いは、ランタイムの選択です。

00:08:06.865 --> 00:08:08.437
>> 少なくとも展開の視点からですね。

00:08:08.437 --> 00:08:09.468
>> はい。まったくそのとおりです。

00:08:09.468 --> 00:08:11.125
>> はい。

00:08:11.125 --> 00:08:13.852
>> そしてご覧のとおり、コンテナーを開始しました。

00:08:13.852 --> 00:08:15.484
そしてまったく同じことをしています。

00:08:15.484 --> 00:08:18.843
コマンドを呼び出し、ping local host -t を実行し、

00:08:18.843 --> 00:08:20.983
このプロセスを実行したままにします。

00:08:20.983 --> 00:08:22.142
>> はい。

00:08:22.142 --> 00:08:25.575
>> 同じことをします。ホストに行ってみます。

00:08:25.575 --> 00:08:29.259
今度は、ping プロセスが表示されていませんね。

00:08:29.259 --> 00:08:30.278
>> はい。

00:08:30.278 --> 00:08:33.716
>> このコンテナーは、高度に最適化された

00:08:33.716 --> 00:08:36.904
仮想マシンの中にカプセル化されているので、すべてその中にあります。

00:08:36.904 --> 00:08:37.947
>> はい。

00:08:37.947 --> 00:08:39.663
>> ただし、ここから見える場合もあります。

00:08:39.663 --> 00:08:42.712
get container を実行して...

00:08:47.628 --> 00:08:51.167
select * と入力すると、コンテナー ID を取得できます。

00:08:52.694 --> 00:08:57.054
ホストでプロセスのリストをスクロールしていくと、

00:08:57.054 --> 00:08:59.223
VM ワーカー プロセスがあります。

00:08:59.223 --> 00:09:03.913
これがあの Hyper-V プロセスで、仮想マシンを表しています。

00:09:03.913 --> 00:09:06.863
ユーザー名を見ると、このVM ワーカー プロセスのユーザー名は

00:09:06.863 --> 00:09:12.051
コンテナーの ID と同じであることがわかります。

00:09:12.051 --> 00:09:15.469
つまり、Hyper-V コンテナーと、ホスト上のプロセスを

00:09:15.469 --> 00:09:18.204
関連付ける方法はありますが、コンテナー内で実行している

00:09:18.204 --> 00:09:20.273
プロセスを見ることはできないのです。

00:09:20.273 --> 00:09:22.138
>> そして、これは Hyper-V マネージャーから

00:09:22.138 --> 00:09:23.777
見ることもできないのですよね。

00:09:23.777 --> 00:09:25.258
>> できません。>> VM だとしても。

00:09:25.258 --> 00:09:27.894
>> はい。そのとおりです。はい。そこから見ることはできません。

00:09:27.894 --> 00:09:30.130
ここでコンテナーそのものに入ってみると...

00:09:36.052 --> 00:09:38.874
そこでは ping プロセスが

00:09:38.874 --> 00:09:40.288
実行されていることを確認できます。

00:09:40.288 --> 00:09:41.436
>> はい。

00:09:48.116 --> 00:09:50.914
>> ここにあります。

00:09:50.914 --> 00:09:53.366
それでこれは簡単な例ですが、

00:09:53.366 --> 00:09:55.632
[コンテナー チャンネル: Microsoft]
Windows サーバー コンテナーと、

00:09:55.632 --> 00:09:58.315
[コンテナー チャンネル: Microsoft] Hyper-V コンテナーのどこが違うかを

00:09:58.315 --> 00:09:59.519
[コンテナー チャンネル: Microsoft] ホストの視点から確認しました。

00:09:59.519 --> 00:10:02.969
[コンテナー チャンネル: Microsoft]
>> それで、たとえばサービス プロバイダーである場合、

00:10:02.969 --> 00:10:07.505
[コンテナー チャンネル] または、ワークロードが ping と比べてもっと敏感な、

00:10:07.505 --> 00:10:09.581
[コンテナー チャンネル] 共有またはマルチテナント環境での

00:10:09.581 --> 00:10:13.336
[コンテナー チャンネル] コンテナーの実行時ワークロードについて考えている場合に、大きな利点があります。

00:10:13.336 --> 00:10:17.427
[コンテナー チャンネル] Hyper-V コンテナーを使用することで、より高度な分離性を得ることができます。

00:10:17.427 --> 00:10:19.607
[コンテナー チャンネル] それは VM が提供するハードウェアの分離性であり、

00:10:19.607 --> 00:10:22.376
[コンテナー チャンネル] コンテナー自体に利点と移植性が実現しますね。

00:10:22.376 --> 00:10:23.461
[コンテナー チャンネル] >> はい。そのとおりです。

00:10:23.461 --> 00:10:25.168
[コンテナー チャンネル] >>
そして、今見てきたこの 1 つの変更点以外には

00:10:25.168 --> 00:10:28.498
[コンテナー チャンネル] 管理について異なるやり方をする必要はないんですね。

00:10:28.498 --> 00:10:29.857
[コンテナー チャンネル: Microsoft] >> はい。そのとおりです。

00:10:29.857 --> 00:10:35.763
[コンテナー チャンネル] ここまでは、PowerShell を使った例でした。

00:10:35.763 --> 00:10:37.963
Docker にも同じ機能があります。

00:10:39.152 --> 00:10:44.858
これを使います。

00:10:44.858 --> 00:10:48.186
これは標準の docker run コマンドです。

00:10:48.186 --> 00:10:49.209
>> はい。

00:10:49.209 --> 00:10:52.780
>> Docker run -it で、対話型セッションが開始します。

00:10:52.780 --> 00:10:53.833
>> はい。

00:10:53.833 --> 00:10:56.085
>> そしてこれが今見ている変更点です。

00:10:56.085 --> 00:10:58.526
isolation=hyper-v

00:10:58.526 --> 00:10:59.629
>> はい。

00:10:59.629 --> 00:11:03.250
>> そして実行したいイメージの ID
もあります。Nano Server イメージです。

00:11:03.250 --> 00:11:05.127
コマンド シェルを開始してみます。

00:11:07.534 --> 00:11:09.683
これを実行すると、やはり

00:11:09.683 --> 00:11:12.826
別の VM ワーカー プロセスが始まったことを確認できます。

00:11:12.826 --> 00:11:13.999
>> はい。

00:11:13.999 --> 00:11:16.457
>> つまり、Hyper-V コンテナーが作成されています。

00:11:16.457 --> 00:11:17.626
>> はい。

00:11:17.626 --> 00:11:20.527
ですから Docker と PowerShell のどちらで実行するかにかかわりなく、

00:11:20.527 --> 00:11:22.655
結果は同じ、ということですね。

00:11:22.655 --> 00:11:24.445
>> おそらく違いの 1 つは、

00:11:24.445 --> 00:11:27.130
Docker の場合はここにコマンド ラインの表示を置きました。

00:11:27.130 --> 00:11:30.609
なぜなら最初に起動したときに指定したのがそのコマンドだからですね。

00:11:30.609 --> 00:11:31.831
なるほど。

00:11:31.831 --> 00:11:36.260
>> 最後にもう 1 つ、Windows
サーバー コンテナーと Hyper-V コンテナーの

00:11:36.260 --> 00:11:39.183
素晴らしい点として、管理の方法はどちらも同じだとお話しました。

00:11:39.183 --> 00:11:42.074
本当にそうなんです。

00:11:42.074 --> 00:11:44.003
つまり、

00:11:44.003 --> 00:11:46.546
[コンテナー チャンネル: Microsoft]
Windows サーバー コンテナーを使い、

00:11:46.546 --> 00:11:50.705
[コンテナー チャンネル: Microsoft] それを構築し、動かし、Hyper-V コンテナーに

00:11:50.705 --> 00:11:52.037
[コンテナー チャンネル: Microsoft] 変換することができます。

00:11:52.037 --> 00:11:54.107
[コンテナー チャンネル: Microsoft] >>ということは、開発者がアプリケーションを構築していて、

00:11:54.107 --> 00:11:57.372
[コンテナー チャンネル: Microsoft] それをコンテナーにパッケージ化し、自分のテスト環境である

00:11:57.372 --> 00:11:58.733
[コンテナー チャンネル] Windows Server で動かしている場合に、

00:11:58.733 --> 00:12:01.725
[コンテナー チャンネル] もっと分離性の高い環境が必要になったとしても、

00:12:01.725 --> 00:12:03.566
[コンテナー チャンネル] アプリを変更する必要はない、ということですね。

00:12:03.566 --> 00:12:04.850
[コンテナー チャンネル] >> そのとおりです。>> わかりました。いいですね。

00:12:04.850 --> 00:12:05.920
[コンテナー チャンネル: Microsoft] >> それではその例を見てみましょう。

00:12:05.920 --> 00:12:07.239
ここにあるのは

00:12:07.239 --> 00:12:09.557
[ユーザー名: パスワード: ドメイン:]
Nano Server コンテナー ホストです。

00:12:17.686 --> 00:12:19.830
[Nano Server 回復コンソール]
ここに IP アドレスがあります。

00:12:19.830 --> 00:12:23.944
[Nano Server 回復コンソール]
ご存じのように、Nano Server にローカル ログオンする必要はありません。

00:12:23.944 --> 00:12:26.533
[Nano Server 回復コンソール]
私のラップトップには、2 つの PowerShell セッションがあります。

00:12:26.533 --> 00:12:29.273
この Nano コンテナー ホストに対して作成されたものです。

00:12:29.273 --> 00:12:31.139
>> はい。

00:12:31.139 --> 00:12:37.072
>> そして先ほどと同じように、すでにいくつかのスクリプトを作成しておきました。

00:12:41.540 --> 00:12:45.712
最初のスクリプトで、コンテナーを作成します。

00:12:45.712 --> 00:12:49.830
ping という名前のコンテナーで、コンテナー イメージは
Nano Server、それから スイッチ名。

00:12:49.830 --> 00:12:51.486
これをスイッチに割り当てます。

00:12:51.486 --> 00:12:54.124
>> はい。>> ping プロセス...

00:12:55.130 --> 00:12:56.524
ではなく、コンテナーを開始して、

00:12:56.524 --> 00:13:01.104
それから前と同じように ping プロセスを実行します。

00:13:01.104 --> 00:13:04.810
そして、Nano Server ホスト上で
Windows サーバー コンテナーを作成します。

00:13:08.981 --> 00:13:11.941
今コンテナーを開始しています。

00:13:11.941 --> 00:13:13.023
>> ということは...

00:13:13.023 --> 00:13:14.345
これは Windows サーバー コンテナーですが、

00:13:14.345 --> 00:13:16.313
Nano ベースの Windows サーバー コンテナーということですね。

00:13:16.313 --> 00:13:17.396
>> はい、Nano ベースのイメージです。

00:13:17.396 --> 00:13:20.647
TP4 では、どのホスト OS
でどのベース OS イメージを実行できるかなどに関して、

00:13:20.647 --> 00:13:23.727
いくつかの制限があります。

00:13:23.727 --> 00:13:25.950
>> はい。

00:13:25.950 --> 00:13:30.060
>> ホストから get-process を実行すると、

00:13:30.060 --> 00:13:35.734
ping プロセスがあり、Windows サーバー コンテナー プロセスは

00:13:35.734 --> 00:13:37.101
ホストから見える状態になっています。

00:13:37.101 --> 00:13:38.104
>> はい。

00:13:38.104 --> 00:13:42.860
>> ここでこのコンテナーを解体して新しいコンテナーを作成するのではなく、

00:13:42.860 --> 00:13:47.377
この同じコンテナーを使用します。

00:13:47.377 --> 00:13:51.316
get-conteiner を実行すると、ここにコンテナーがあります。

00:13:51.316 --> 00:13:52.414
ping という名前がついています。

00:13:52.414 --> 00:13:56.021
>> はい。

00:13:56.021 --> 00:13:58.352
>> 別のスクリプト、デモ 2 があります。

00:13:58.352 --> 00:14:02.445
ここでスクリプトのテキストをそのままスクリーンに表示する type を実行しています。

00:14:02.445 --> 00:14:03.471
>> はい。

00:14:03.471 --> 00:14:05.493
>> ここでコンテナーを停止して、

00:14:05.493 --> 00:14:08.876
set-container ping というコマンドを実行して、

00:14:08.876 --> 00:14:11.333
runtime を Hype-V に設定します。

00:14:11.333 --> 00:14:12.842
>> Ping がコンテナーの名前ですね。

00:14:12.842 --> 00:14:15.289
>> そうです。Ping がコンテナーの名前です。

00:14:15.289 --> 00:14:18.368
コンテナーを開始して、もう一度まったく同じことをします。

00:14:18.368 --> 00:14:20.895
コマンドを呼び出し、ping プロセスをもう一度開始します。

00:14:20.895 --> 00:14:24.459
>> これがすべてうまく行けば、次に get-process を実行すると、

00:14:24.459 --> 00:14:26.829
右側の表示で ping プロセスが消えているんですね。

00:14:26.829 --> 00:14:27.841
>> そうです。

00:14:27.841 --> 00:14:29.471
>> 実行されていたコンテナーを停止して、

00:14:29.471 --> 00:14:32.020
プロセスは Hyper-V コンテナー内にカプセル化されているので、

00:14:32.020 --> 00:14:33.323
見えないわけですね。

00:14:33.323 --> 00:14:36.392
>> それだけでなく、VM ワーカー プロセスが開始しているのを確認することができます。

00:14:36.392 --> 00:14:37.904
>> はい。そうですね。

00:14:37.904 --> 00:14:39.745
>> そしてこれからお見せしますが、このプロセス リストが

00:14:39.745 --> 00:14:43.178
かなり減ります。なぜならここで今見ているのはホストの

00:14:43.178 --> 00:14:45.909
プロセスと、実行中のコンテナーのプロセスだからです。

00:14:45.909 --> 00:14:47.014
>> はい。

00:14:48.570 --> 00:14:52.629
>> 続けて、このスクリプトを実行します。そうするとコンテナーを停止し、

00:14:52.629 --> 00:14:54.362
変換を実行し、もう一度開始します。

00:15:04.281 --> 00:15:05.436
get-process を実行しました。

00:15:05.436 --> 00:15:08.534
リストがかなり減りましたね。

00:15:08.534 --> 00:15:13.915
VM ワーカー プロセスが開始しています。これだけです。

00:15:13.915 --> 00:15:15.362
>> なるほど。

00:15:15.362 --> 00:15:20.482
ここまでで、普通の Windows サーバ
コンテナー、今の場合は Nano ですが、

00:15:20.482 --> 00:15:24.051
[HyperV コンテナー デモ: クリックしてノートを入力]
Nano と Hyper-V コンテナーとの間でどれくらい簡単に行き来できるか、

00:15:24.051 --> 00:15:26.533
[HyperV コンテナー デモ: クリックしてノートを入力] さらに、新しい
Windows サーバー コンテナーと新しい Hyper-V ベースのコンテナーを

00:15:26.533 --> 00:15:32.514
[コンテナー チャンネル: Microsoft] どれほど簡単に作成できるかをご覧いただきました。

00:15:32.514 --> 00:15:33.514
[コンテナー チャンネル: Microsoft]

00:15:33.514 --> 00:15:36.423
[コンテナー チャンネル: Microsoft] 簡単です。また、すべてドキュメントに説明されていますので、詳しく学ぶこともできます。

00:15:36.423 --> 00:15:37.431
[参考資料: コンテナーのドキュメント: Microsoft と
Docker の提携:] >> はい。そのとおりです。

00:15:37.431 --> 00:15:40.190
[参考資料: コンテナーのドキュメント: Microsoft と
Docker の提携: Docker の概要]>> さて、今回のビデオは以上です。

00:15:40.190 --> 00:15:42.995
[コンテナー チャンネル: Microsoft] コンテナー チャンネル、コンテナーの基礎でした。

00:15:42.995 --> 00:15:44.151
[コンテナー チャンネル: Microsoft] お楽しみいただけたでしょうか。

00:15:44.151 --> 00:15:46.196
[コンテナー チャンネル: Microsoft] 参考資料をご覧いただければ、さらに情報を得ることができます。

00:15:46.196 --> 00:15:49.043
[コンテナー チャンネル: Microsoft] テクニカル プレビューをダウンロードして、実際に試していただけます。

00:15:49.043 --> 00:15:50.723
[コンテナー チャンネル: Microsoft] Azure で実行することもできます。

00:15:50.723 --> 00:15:53.568
[コンテナー チャンネル: Microsoft] まだまだ学べることはたくさんありますので、

00:15:53.568 --> 00:15:55.348
[コンテナー チャンネル: Microsoft] コンテナー チャンネルの次のビデオをご覧ください。

00:15:55.348 --> 00:15:56.434
[コンテナー チャンネル: Microsoft] ありがとうございました。

00:15:56.434 --> 00:15:57.502
[コンテナー チャンネル: Microsoft] >> Matt、ありがとうございました。

00:15:57.502 --> 00:16:02.397
[参考資料: Windows Server 2016 Technical Preview をダウンロード:
コンテナーのドキュメント: Microsoft と Docker の提携: Docker の概要]

00:16:02.397 --> 00:16:07.277
[コンテナー チャンネル]

00:16:10.058 --> 00:16:12.915
[9 channel9.msdn.com]</para>  </doc></root>