在dockerfile中运行可执行文件

时间:2015-03-27 01:29:35

标签: docker dockerfile

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

但是,我的dockerfile没有运行本地的可执行文件,我无法弄清楚如何将我的本地可执行文件添加到我的容器&#s; / bin目录中。

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

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

让我的容器运行我的程序,并创建一个输出。 我的目标是让他们把我的容器放到我的仓库上,并与我写的所有/ bin程序一起分享它。

但是,我无法这样做。

3 个答案:

答案 0 :(得分:7)

请记住name.exe必须与dockerfile位于同一目录中。 From the documentation

  

<src>路径必须位于构建的上下文中;你不能COPY ../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

答案 1 :(得分:1)

尝试:

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

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

答案 2 :(得分:1)

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

请点击此处了解更多信息: https://docs.docker.com/reference/builder/#add