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
[容器基础知识 Hyper-V 容器容器频道 Microsoft]>>大家好，欢迎再次观看容器

00:00:08.839 --> 00:00:09.963
[技术推广员 Matt McSpirit 容器频道 Microsoft]频道的节目。

00:00:09.963 --> 00:00:12.862
[技术推广员 Matt McSpirit
容器频道 Microsoft]我是 Matt McSpirit，负责数据中心所有事务的技术推广员。

00:00:12.862 --> 00:00:14.460
[技术推广员 Matt McSpirit
容器频道 Microsoft]很高心再次邀请到 Neil Peterson，

00:00:14.460 --> 00:00:17.285
[容器频道 Microsoft 高级内容开发员 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]那么，请再深入讲解一点

00:00:30.245 --> 00:00:32.307
[容器基础知识 Hyper-V 容器]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
Server 容器 - 通过进程、命名空间和网络隔离技术隔离。]在开始一些演示之前，

00:00:40.022 --> 00:00:41.341
[Hyper-V 容器 Windows Server
容器 - 通过进程、命名空间和网络隔离技术隔离。]我们先来看看什么是 Hyper-V 容器，

00:00:41.341 --> 00:00:44.234
[Hyper-V 容器 Windows
Server 容器 - 通过进程、命名空间和网络隔离技术隔离。]大致地快速浏览一下。

00:00:44.234 --> 00:00:47.633
[Hyper-V 容器 Windows Server 容器 -
通过进程、命名空间和网络隔离技术隔离。] 在 TP3 中，我们发布了 Windows Server 容器。

00:00:47.633 --> 00:00:51.575
[Hyper-V 容器 Windows Server 容器
- 通过进程、命名空间和网络隔离技术隔离。] 而 Windows Server 容器

00:00:51.575 --> 00:00:53.899
[Hyper-V 容器 Windows
Server 容器 - 通过进程、命名空间和网络隔离技术隔离。]基本上与容器主机

00:00:53.899 --> 00:00:55.086
[Hyper-V 容器 Windows
Server 容器 - 通过进程、命名空间和网络隔离技术隔离。]共享内核。

00:00:55.086 --> 00:00:56.149
[Hyper-V 容器 Windows
Server 容器 - 通过进程、命名空间和网络隔离技术隔离。]>>是的。

00:00:56.149 --> 00:00:57.168
[Hyper-V 容器 Windows
Server 容器 - 通过进程、命名空间和网络隔离技术隔离。]>>隔离是通过

00:00:57.168 --> 00:01:00.418
[Hyper-V 容器 Windows
Server 容器 - 通过进程、命名空间和网络隔离技术隔离。]一系列的进程、命名空间

00:01:00.418 --> 00:01:03.915
[Hyper-V 容器 Windows
Server 容器 - 通过进程、命名空间和网络隔离技术隔离。]和网络隔离技术创建的。

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 容器 -
已扩展隔离，将每个容器置于高度优化的虚拟机中。]Windows Server 容器中拥有的功能，

00:01:10.543 --> 00:01:13.516
[Hyper-V 容器 - 已扩展隔离，将每个容器置于高度优化的虚拟机中。]通过在超级优化的虚拟机中

00:01:13.516 --> 00:01:17.225
[Hyper-V 容器 - 已扩展隔离，将每个容器置于高度优化的虚拟机中。]实质上封装容器

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
[容器频道]支持并运行所有不同容器的操作系统即可。

00:01:33.537 --> 00:01:34.744
[容器频道 Microsoft]>>是的。没错。>>好的。

00:01:34.744 --> 00:01:37.529
[容器频道 Microsoft] 现在，我们有这两种不同的类型，Windows Server 容器

00:01:37.529 --> 00:01:40.034
[容器频道 Microsoft]和 Windows Server
2016 Technical Preview 3。

00:01:40.034 --> 00:01:43.846
[容器频道]然后是 Hyper-V 容器，即 2016
版的 Technical Preview 4。

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]我的意思是这就非常简单地解释了

00:01:48.954 --> 00:01:52.456
[容器频道 Microsoft]什么是 Windows
Server 容器和 Hyper-V 容器。

00:01:52.456 --> 00:01:56.067
[容器频道]我想做的就是简要介绍一下这两者

00:01:56.067 --> 00:01:57.188
[容器频道]并进行比较和对比。

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 Server 容器，

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 和 Docker。

00:02:23.666 --> 00:02:28.617
[Hyper-V 容器演示]最后，我们再快速了解一下如何创建 Windows Server 容器

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 容器演示]你能大概给我们一些...

00:02:48.297 --> 00:02:51.935
[Hyper-V 容器演示]关于大家觉得困惑的地方的观点和答案吗，

00:02:51.935 --> 00:02:53.545
[Hyper-V 容器演示]我到底使用 PowerShell，还是使用 Docker？”

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 人员，我很熟悉 PowerSell，

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
[容器频道]可提供需要的功能，但正如你所说，

00:03:45.791 --> 00:03:48.898
[容器频道]Docker 工具集更加成熟完善一些，它的确能实现

00:03:48.898 --> 00:03:52.288
[容器频道]PowerShell 当前不能提供的功能，特别在 Linux 方面。

00:03:52.288 --> 00:03:54.256
[容器频道]因此你可以拥有更多的功能，

00:03:54.256 --> 00:03:57.019
[容器频道]但对 Windows Server 容器来说，它们之间的差距并不大。

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 Server 容器。

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 Server 核心映像创建一个新容器。

00:04:20.446 --> 00:04:21.511
>>嗯。

00:04:21.511 --> 00:04:23.202
>>在我们刚才创建泛型 Windows Server 容器时，

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 local host。

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 Server
容器和 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
这里你可以看见，该容器内已经有一个

00:05:48.358 --> 00:05:49.388
远程 PowerShell 会话。

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
[任务管理器]结束这一进程，它就会停止...

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
>>只是减少了一个小开关，我们来看看这里

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
需要运行 Nano Server 的基本映像。

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 容器，因此我们选择 RuntimeTpye Hyper-V。

00:08:00.577 --> 00:08:03.302
这是最基本的，我的意思是这就是很大的区别，

00:08:03.302 --> 00:08:04.785
Windows server 容器和 Hyper-V 容器之间的

00:08:04.785 --> 00:08:06.865
不同点就是选择运行时。

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
一旦进入容器，我们就会看到

00:09:38.874 --> 00:09:40.288
ping 进程正在运行。

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]讲解了从主机的角度

00:09:55.632 --> 00:09:58.315
[容器频道 Microsoft]观察 Windows
Server 容器、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
[容器频道]或者你对在容器内运行工作负荷感到担忧，

00:10:07.505 --> 00:10:09.581
[容器频道]这些容器可能是共享容器或其中工作负荷

00:10:09.581 --> 00:10:13.336
[容器频道]可能比 ping 更加敏感的多租户环境。

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
[容器频道]>>而且除了我们讲到的那个开关，

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
[容器频道 Microsoft]对于这一点，有一个使用 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 运行命令。

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=hyperv。

00:10:58.526 --> 00:10:59.629
>>哦。

00:10:59.629 --> 00:11:03.250
>>然后我具有了想要运行的 Nano Server 映像的 ID，

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
>>我想这里的一个区别就是

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
>>最后一个关于 Windows Server 容器和

00:11:36.260 --> 00:11:39.183
Hyper-V 容器的灵活之处在于，我们提到过两者之间的

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 Server 容器，

00:11:46.546 --> 00:11:50.705
[容器频道 Microsoft]开发并运行它，然后实际上将它转换为

00:11:50.705 --> 00:11:52.037
[容器频道 Microsoft]Hyper-V 容器。

00:11:52.037 --> 00:11:54.107
[容器频道 Microsoft]>>因此，如果我是一名开发人员，我要构建一个应用程序，

00:11:54.107 --> 00:11:57.372
[容器频道 Microsoft]就会在容器中进行打包，然后在 Windows Server 中运行它，

00:11:57.372 --> 00:11:58.733
[容器频道]或是在测试环境中运行。

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 恢复控制台]在我的笔记本电脑上，我有两个

00:12:26.533 --> 00:12:29.273
使用 Nano Server
容器主机创建的 PowerShell 会话。

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 Server 容器。

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 Server 容器，

00:13:14.345 --> 00:13:16.313
但它依然是基于 Nano 的
Windows Server 容器。

00:13:16.313 --> 00:13:17.396
>>是的，依然是基于 Nano 的映像。

00:13:17.396 --> 00:13:20.647
在 TP4 版本上，存在一些针对哪些基本 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 Server 容器是

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 - Container，这是我的容器，

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
我运行“类型”，这就会在屏幕上返回脚本文本。

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
并将运行时设置为 Hyper-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
>>如果一切顺利，我们在右侧看到的应该是

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
而且现在不显示是因为它封装在了

00:14:32.020 --> 00:14:33.323
Hyper-V 容器中。

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
获取进程。

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
因此在此示例中，我们看到无需考虑 Nano，就可以在

00:15:20.482 --> 00:15:24.051
[Hyper-V 容器演示 单击可添加备注]常规的
Windows Server 容器之间轻松实现遍历。

00:15:24.051 --> 00:15:26.533
[Hyper-V 容器演示 单击可添加备注]而在
Nano 和 Hyper-V 容器之间，我们展示了

00:15:26.533 --> 00:15:32.514
[容器频道 Microsoft]创建新的 Windows
Server 容器和基于 Hyper-V 的新容器是非常的便捷容易。

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 合作关系 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 技术预览版
阅读容器文档 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>