Docker并指定一个目标操作系统

我读过 :

Docker是一个pipe理和部署应用程序容器的系统,而不是操作系统容器。

但是,在一些资源中(例如,在https://www.youtube.com/watch?v=pGYAg7TMmp0中大约1:20),如果您在Windows上开发Web应用程序,则可能会遇到一些“问题” PC或Mac,并将其部署到Linux服务器。

那么,Docker如何在这种情况下提供帮助? 如果我们采用一个Web应用程序,我知道Docker可以帮助您创build一个包含源代码的容器,并说出一个特定的PHP版本。 但是,如果与运行Docker的服务器不同,是否可以指定目标操作系统运行?

Docker FAQ( https://docs.docker.com/engine/faq/ )说

您可以在Docker容器中运行Linux和Windows程序以及可执行文件。

这是否意味着您需要单独安装在Linux Windows计算机上的Docker来执行此操作,还是可以在Docker映像中指定任何操作系统,并让任何计算机运行它?

请有人解释一下,或者如果 – Docker处理为应用程序指定特定的操作系统?

Docker开始作为在Linux主机上运行容器的一种方式,这仍然是Docker容器的主要目标。 开发人员环境包括一个embedded式VM,用于在Mac和Windows上运行Linux。 最初这是VirtualBox,但是更新的版本使用xhyve和hyperv。 所有这些主机操作系统都是Linux,因此您不是在一个操作系统上构build映像,而是在另一个操作系统上运行映像。

从那以后,Docker扩展了目标操作系统。 这要求您为该操作系统安装docker,并且要求您的映像devise为在该架构/操作系统上运行。 这从Linux的其他架构如arm64开始,现在是zLinux。 微软的合作伙伴关系是一个相当大的重写,部分在Windows本身,也在Docker代码中,特别是在devise为在Windows上本地运行的图像。 要运行这些,你必须改变Docker for Windows的设置来运行Windows容器而不是Linux容器,你不能在同一台主机上同时运行它们。 目前,只能在Windows主机上运行Windows二进制文件,微软并没有为Linux主机提供免费的虚拟机。 而作为一个新的目标平台,它仍然滞后于Linux主机的function。