在dockerfile中运行可执行文件

在dockerfile中运行可执行文件,docker,dockerfile,Docker,Dockerfile,我是Docker的新手,正在阅读Turnbull的Docker书籍。 基本上,我掌握了容器如何工作以及图像如何在传输协议和虚拟化操作系统中工作的术语和过程 但是,我的dockerfile没有运行本地的可执行文件,我无法确定如何将本地可执行文件添加到容器的/bin目录中 我的目标:我想将name.exe添加到容器的/bin目录中。那么我想要一个docker文件 FROM ubuntu MAINTAINER me@gmail.com RUN ["name.exe", "input1", "outpu

我是Docker的新手,正在阅读Turnbull的Docker书籍。 基本上,我掌握了容器如何工作以及图像如何在传输协议和虚拟化操作系统中工作的术语和过程

但是,我的dockerfile没有运行本地的可执行文件,我无法确定如何将本地可执行文件添加到容器的/bin目录中

我的目标:我想将name.exe添加到容器的/bin目录中。那么我想要一个docker文件

FROM ubuntu
MAINTAINER me@gmail.com
RUN ["name.exe", "input1", "output"]
让我的容器运行我的程序,并创建一个输出。 我的目标是让他们把我的容器放到我的回购协议上,并与我编写的所有/bin程序一起共享

但是,我不能这样做。

试试:

FROM ubuntu
ADD name.exe /bin/name.exe
ENTRYPOINT["name.exe"]
CMD["input1","input2"]
但是这个input1 input2也必须在docker上,否则在运行时必须添加-v。基本上,“add”命令将文件从本地系统复制到docker映像中

请参见此处了解更多信息:

请记住,
name.exe
必须与dockerfile位于同一目录中:

路径必须在生成的上下文中;您不能
复制../something/something
,因为docker构建的第一步是将上下文目录(和子目录)发送到docker守护程序

您的dockerfile可能如下所示:

FROM ubuntu
MAINTAINER me@gmail.com
COPY name.exe /bin/
CMD ["/bin/name.exe", "input1", "output"]
您可以这样构建它:

docker build --tag=me/my-image .

当您运行它时(
docker run me/my image
),它将运行
/bin/name.exe input1 output

添加和复制之间的区别是什么?我使用了COPY命令,文件被复制到我的容器中,但是当我启动一个交互式shell时,它不会运行。我非常感谢你的建议。谢谢。为了确保您的
name.exe
不是windows可执行文件,是吗?