【问题标题】:how to run any exe application on docker如何在 docker 上运行任何 exe 应用程序
【发布时间】:2017-02-25 08:20:00
【问题描述】:

我在构建和运行映像时遇到问题。这是我的 docker 文件代码。

FROM microsoft/nanoserver
MAINTAINER sagar@gmail.com
COPY name.exe /bin/
ENTRYPOINT ["name.exe/bin"]
CMD ["/bin/name.exe", "input1", "output"]

要构建我正在使用这个:docker build -t my name .

当我构建它时,它显示成功,但是当我运行它时,它没有给出任何输出或任何错误。 我也尝试过使用其他基本图像。

【问题讨论】:

  • Docker 适用于 Linux。您不能在其中运行 Windows 可执行文件。因此,在您的笔记本电脑上安装 Linux,在 Linux 上编译您的程序(使用 gcc 用于 C 代码或使用 g++ 用于 C++ 代码)并将其可执行文件复制到您的 docker 中。
  • 但是我在 Windows 容器上运行这个 exe .. 可以吗?
  • @BasileStarynkevitch,带有 Docker 的 Windows 容器实际上是真实存在的(参见 Microsoft's documentation on this)。关于这个问题;你确定name.exe/bin 是正确的入口点吗?由于bin/name.exe 也在您的“CMD”中,您是否尝试过完全省略入口?
  • 我该怎么办?我不明白你的意思@helmbert
  • 你是如何运行它的?使用-i(交互式)标志?如果没有,您将看不到任何输出。

标签: windows docker dockerfile nano-server


【解决方案1】:

我认为错误出现在 ENTRYPOINT 行中。您使用路径“name.exe/bin”而不是“bin/name.exe”,这是 COPY 放置文件的位置。

如果你像@helmbert 所说的那样使用 CMD,你实际上不需要入口点。 我认为 ENTRYPOINT 和 CMD 之间的区别在于,如果需要,您可以在运行时覆盖 CMD 命令。所以你可以使用“docker run -i myimage powershell”。您可以尝试不使用入口点行并查看。

【讨论】:

    猜你喜欢
    • 2020-07-02
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多