创建 Windows 10 映像以用作 Docker 容器

创建 Windows 10 映像以用作 Docker 容器

我正在尝试创建一个 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 所需的更改集。

答案2

看起来有人实现了,但是评论表明没有多少人可以重现:

https://medium.com/axon-technologies/installing-a-windows-virtual-machine-in-a-linux-docker-container-c78e4c3f9ba1

相关内容