我read表示:
Docker是一个用于管理和部署应用程序容器的系统,而不是操作系统容器。
然而,在几个资源中(例如大约1:20到https://www.youtube.com/watch?v=pGYAg7TMmp0),它给出了一个例子,如果你在Windows PC或Mac上开发了一个Web应用程序,并且正在部署,你可能会遇到“问题”它到Linux服务器。
那么,Docker如何在这种情况下提供帮助?如果我们采用Web应用程序,我了解Docker可以帮助您创建一个包含源的容器,并说出特定版本的PHP。但是,如果它与运行Docker的服务器不同,您是否可以为其运行指定目标操作系统?
Docker常见问题解答(https://docs.docker.com/engine/faq/)说
您可以在Docker容器中运行Linux和Windows程序以及可删除项。
这是否意味着你需要在Linux 和 Windows机器单独上安装Docker才能执行此操作,或者是否可以在Docker镜像中指定任何操作系统并拥有任何操作系统机器运行吗?
有人可以解释一下 - 或者 - 如果 - Docker如何处理为您的应用指定特定的操作系统?
答案 0 :(得分:4)
Docker最初是以在Linux主机上运行容器的方式开始的,这仍然是docker容器的主要目标。开发人员环境包括一个嵌入式VM,用于在Mac和Windows上运行Linux。最初这是VirtualBox,但较新的版本使用xhyve和hyperv。所有这些中的主机操作系统都是Linux,因此您无需在一个操作系统上构建映像并在另一个操作系统上运行它。
从那开始,Docker扩展了目标操作系统。这要求您为该操作系统安装docker,并且要求将映像设计为在该体系结构/ OS上运行。这开始于其他Linux架构,如arm64,现在是zLinux。微软的合作伙伴关系是一个相当大的重写,部分在Windows本身,但也在Docker代码中,特别是在设计为在Windows上本机运行的图像中。要运行这些,您必须更改Docker for Windows上的设置以运行Windows容器而不是Linux容器,您不能在同一主机上同时运行它们。目前,运行Windows二进制文件只能在Windows主机上运行,Microsoft不能为Linux主机运送免费虚拟机。作为一个新的目标平台,它仍然落后于Linux主机的功能。