在dockerfile中运行可执行文件

我是Docker的新手,正在阅读Turnbull的Docker Book。 从本质上讲,我掌握了容器的工作方式和过程,以及传输协议和虚拟化操作系统中图像的工作方式。

但是,我的dockerfile没有运行一个本地的可执行文件,我不知道如何将我的本地可执行文件添加到我的容器的/ bin目录中。

我的目标是:我想将name.exe添加到我的容器的/ bin目录中。 然后我想有一个docker文件

FROM ubuntu MAINTAINER me@gmail.com RUN ["name.exe", "input1", "output"] 

并让我的容器运行我的程序,并创build一个输出。 我的目标是让他们将我的容器放到我的回购站中,并与我所写的所有/ bin程序一起分享。

但是,我无法这样做。

请记住, name.exe必须位于与您的dockerfile相同的目录中。 从文档 :

<src>path必须位于构build的上下文中; 你不能COPY ../something /something ,因为COPY ../something /something的第一步是将上下文目录(和子目录)发送到docker守护进程。

你的dockerfile可能看起来像这样:

 FROM ubuntu MAINTAINER me@gmail.com COPY name.exe /bin/ CMD ["/bin/name.exe", "input1", "output"] 

你可以像这样构build它:

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

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

尝试:

 FROM ubuntu ADD name.exe /bin/name.exe ENTRYPOINT["name.exe"] CMD["input1","input2"] 

但是这个input1 input2也必须在docker上,否则在运行的时候必须加上-v

基本上,“add”命令将本地系统中的文件复制到docker映像中。

请参阅这里了解更多: https : //docs.docker.com/reference/builder/#add