linux 应用 运行 在 windows 上可以使用 Docker 吗?

Can a linux app run on windows using Docker?

我知道这个问题 (),但它并没有真正回答我的问题。

我是 Docker 的新手,但我的问题是这样的 - 如果我将任何 windows 应用程序放入 Docker 容器中,它可以 运行现在 Linux 反之亦然?

Confluent 声称它只能在 linux 上 运行,但我的同事使用 Docker 在 Windows 上安装了它。那么如果能用Docker安装,那整个应用就一定算是跨平台了吧?

我想我在这里遗漏了一些重要的观点。

Docker 不是 VM,它是 运行 共享内核上的应用程序的一种方式,可以将这些应用程序彼此隔离。 Windows 二进制文件不会 运行 在 Linux 内核上,反之亦然(暂时忽略 Linux 运行 时间 Windows ).因此,如果您使用 Windows 应用程序构建一个容器,它只会 运行 如果您在 Dockers Windows 运行time 和 windows 基础图像。它不会 运行 在 Linux 主机上。

docker 提供的是嵌入式 VM 运行ning Linux(最初是 VirtualBox,但当前版本是 HyperV)。通过 运行ning Docker for Windows,默认情况下,此 VM 已被使用,您只会 运行ning Linux 个容器,因此您的 windows 应用程序甚至不会 运行 在容器内。对于 运行 Windows 二进制文件,您需要为 Windows 切换 Docker 以使用 Windows 运行 时间,目前这是一个切换,你不能 运行 Linux 和 Windows 运行 同时在同一主机上。

也没有 Windows VM 与 Docker 的 Linux 安装打包在一起。您需要在 Linux 主机和 运行 上的虚拟机中安装自己的 Windows 副本(并获得许可,这就是 Docker 不提供此文件的原因)如果您需要 Windows 支持,您可以在该 VM 中安装容器。