我正在尝试创建一个 Windows 10 映像,以便将现有的旧版应用程序 docker 化。出于很好的理由,基础映像必须是 Windows 10不是Windows 服务器。我该如何做?
我心里想的是:
1)将我的原始 Windows 安装创建为 Hyper-V 计算机
2)安装应用程序
3)关闭此虚拟机
4)将生成的 VHDX 转换为 Windows 映像 (WIM) 文件
5)以某种方式使用它作为docker的基础镜像
我走的路正确吗?
答案1
不,这不行。
Windows 容器(与 Linux 上的 Docker 容器相同)基本上包含 Windows 的“用户空间”部分,但共享单个底层 Windows 服务器内核。
我发现一个方便的思考方式是,每个容器都有点像 Windows 中一个单独的隔离用户帐户。您可以拥有多个用户帐户,每个用户帐户都有自己的一组私有文件,并且彼此隔离,但它们仍然直接与底层操作系统绑定,并且都在同一个共享内核上运行。
这非常棒,因为使用单个共享内核,我们不需要在 CPU 或内存级别进行硬件虚拟化,因此事情可以变得更加高效。
然而,按照这种设计,Windows 10 UI 和所有这些东西都不是为与 Windows Server 2016 内核兼容而设计的。它们可能巧合地兼容,但可能性不大。
此外,您不能只拿一个 VHD/WIM 或其他类型的映像,然后说“这是我的容器”。您必须从“基本映像”开始,它实际上是您主操作系统的表示,然后根据需要应用更改。我无法想象尝试找出将基本 Windows 服务器转变为 Windows 10 所需的更改集。