当前位置: 首页 > 知识库问答 >
问题:

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

云锦
2023-03-14

我意识到这个问题(Windows容器可以托管在Linux上吗?),但它并没有真正回答我的问题。

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

Confluent声称它只能在linux上运行,但我的同事使用Docker在Windows上安装了它。所以如果你能用Docker安装它,那么整个应用程序肯定会被认为是跨平台的?

我想我遗漏了重要的一点。

共有1个答案

曾弘扬
2023-03-14

Docker不是一个虚拟机,它是在一个共享内核上运行应用程序的一种方式,该内核将这些应用程序彼此隔离。Windows二进制文件不在Linux内核上运行,反之亦然(暂时忽略Windows的Linux运行时)。因此,如果您使用Windows应用程序构建容器,那么只有在Dockers Windows运行时和Windows基映像上这样做时,它才会运行。它不会在Linux主机上运行。

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

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

 类似资料:
  • 问题内容: Android基于Linux;本机Linux应用程序可以在Android上运行吗? 问题答案: 一般来说,没有。Android应用程序通常在类似于Java的沙盒虚拟机中运行,因此必须使用Java或编译为使用Android API的虚拟机字节码的某种语言编写。 但是,虚拟机确实可以在基础Linux操作系统上运行,并且有多种方法可以调用本机代码。参见https://developer.an

  • 是否可以使用JavaFX开发一个完整的应用程序,并在iOS、Android或Windows Phone8上运行,而无需编写特定于平台的代码?

  • 问题内容: 如何在Docker容器中运行GUI应用程序? 是否设置了任何图像或其他东西,例如,您可以在Firefox周围添加一个额外的speedbump沙箱? 问题答案: 您可以简单地与Firefox一起安装vncserver :) 我在这里推送了一个图像,vnc / firefox: 该镜像已使用以下Dockerfile生成: 这将创建一个运行VNC的Docker容器,密码为: 对于Docker

  • 问题内容: 我对所有有关Docker的聊天以及它如何适应虚拟化世界感到困惑。所以这是一个直截了当的问题:我可以打包一个.Net应用程序(通常在Windows 7等操作系统上运行)以在Docker容器中运行,然后在支持Docker的“任何”主机上执行它吗? TIA。 问题答案: 今天不行。将来,Microsoft和Docker都宣布您将拥有Windows版本的Docker。 编辑:较新的信息 请注意

  • 问题内容: 是否可以使用JavaFX开发整个应用程序并在iOS,Android或Windows Phone 8上运行它,而无需编写特定于平台的代码? 问题答案: 背景 Invariant的答案是关于如何开始一切以及2014年初嵌入式和移动JavaFX的状态的好资源。但是,此后发生 了很多 变化,偶然发现此线程的用户无法获得更新的信息。 我的大部分观点都与Invariant的答案有关,因此我建议先进

  • 我最近几天的问题是,我正在尝试加密我的一些项目,我正在工作。由于Docker对我来说是一个很好的解决方案(如果它在本地运行,它将在远程运行),据我所知,我得到了3层可以实现我的ssl证书。第一层是实例或虚拟机(在我的例子中是本地的,aws或Google)。第二层是Docker守护进程(充当服务器或所有运行容器的管理器),最后一层是运行在jdk-alpine环境(可能是tomcat服务器)上的spr