【问题标题】:How do you run an .exe file on Docker?如何在 Docker 上运行 .exe 文件?
【发布时间】:2019-12-24 06:18:05
【问题描述】:

我目前正在尝试了解和学习 Docker。我有一个应用程序 .exe 文件,我想通过创建 Docker 在 Linux 或 OSX 上运行它。我在网上搜索过,但找不到任何允许这样做的东西,而且我对 Docker 的了解还不够,无法尝试即兴创作。这可能吗?我必须使用 Boot2Docker 吗?你能指出我正确的方向吗?提前感谢您的任何帮助。

【问题讨论】:

  • 我想你误解了 Docker 的概念。原则上它只是创建虚拟机的另一种形式。在这些内部,您可以安装任何您喜欢的操作系统 - 然后可以在该操作系统上运行任何操作系统支持的东西(在虚拟化的限制内)。
  • 所以你根本无法通过docker在linux或osx上运行windows程序?
  • 试试Server Fault
  • @planetmaker docker 引擎不会在 VM 中安装任何操作系统,它是一个隔离在单个内核上运行的应用程序的环境。通常这是一个 Linux 内核,但 Windows 原生支持正在出现。 Docker 确实在其 windows 和 mac 安装上使用虚拟机来运行 Linux 操作系统,然后 docker 引擎可以在该操作系统上运行。
  • 是的,谢谢你的解释

标签: docker exe boot2docker


【解决方案1】:

Docker 允许您隔离在主机上运行的应用程序,它不提供不同的操作系统来运行这些应用程序(包含 Linux 虚拟机的客户端产品除外,因为 Docker 最初是一个仅限 Linux 的工具)。如果应用程序在 Linux 上运行,它通常可以在容器内运行。如果应用程序无法在 Linux 上运行,那么它将无法在 Linux 容器中运行。

exe 是一种 Windows 二进制格式。这种二进制格式与 Linux 不兼容(除非您在模拟器或 VM 中运行它)。我不知道有什么简单的方法可以实现您的目标。如果你想运行这个二进制文件,那么跳过 Linux 上的 Docker 并在你的主机上安装一个 Windows VM。

【讨论】:

  • 这个答案似乎已经过时了。现在有 windows 基础操作系统映像,例如 nanoserver 或 servercore。
  • @HugoZevetel 有 Windows 映像,但它们必须在 Windows 主机上运行。 OP 要求在 Linux 或 OSX 主机上运行 Windows 二进制文件。
  • 是的,你需要一个windows主机,但我相信这仍然可以通过docker实现。 stackoverflow.com/questions/36172382/…
  • @HugoZevetel 根据问题“我想通过创建 Docker 在 Linux 或 OSX 上运行它。”我相信您想回答的问题与此处提出的问题不同。
  • 没有。您的回答建议跳过 docker 并在 Windows VM 上运行。我所说的以及上面的链接所说的是,可以使用 docker 在 Linux 上运行 Windows 容器,这正是问题所在。请检查上面的链接。
【解决方案2】:

正如其他答案所说,Docker 不会模拟运行可执行“exe”文件所需的整个 Windows 操作系统。但是,还有另一个工具可以做与您想要的类似的事情:WineHQ 的“Wine”应用程序。他们网站的简短摘要:

Wine 是一个能够运行 Windows 应用程序的兼容层 在多个操作系统上,例如 Linux 和 macOS。 而不是像虚拟一样模拟内部 Windows 逻辑 机器或模拟器,Wine 翻译 Windows API 调用 即时,消除性能和内存损失 其他方法并允许您干净地集成 Windows 应用程序到您的桌面。

(我不使用也不为 WineHQ 工作,也没有实际使用过它。我只听说过它,它似乎可能是在轻量级内部运行 Windows 程序的解决方案容器。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-15
    相关资源
    最近更新 更多