为什么这个docker文件没有运行shell脚本?

时间:2016-08-22 10:15:20

标签: shell docker

现在,我创建了一个名为(Dockerfile)的docker文件,如下所示:

当我使用以下命令构建它时:

docker build -f Dockerfile .

我得到以下输出:

Step 1 : FROM ******.dkr.ecr.us-east-1.amazonaws.com/centos-base:7
 ---> 9ab68a0dd16a
Step 2 : COPY echo_hello.sh /echo_hello.sh
 ---> Using cache
 ---> e7d541f5cf53
Step 3 : RUN bash /echo_hello.sh
 ---> Running in 4b5518faab28
hello world
hello world
.......

但是,当我开始使用以下命令运行它时:

docker run -it d2cc33b16e8f

这不会发生,而是显示错误:

运行以启动应用程序的命令

我在哪里错了?

2 个答案:

答案 0 :(得分:0)

您需要将Dockerfile更改为以下内容:

FROM *******.dkr.ecr.us-east-1.amazonaws.com/centos-base:7
COPY echo_hello.sh /echo_hello.sh
RUN chmod u+x /echo_hello.sh
CMD /echo_hello.sh

本页很好地解释了Dockerfile指令:

http://goinbigdata.com/docker-run-vs-cmd-vs-entrypoint/

答案 1 :(得分:0)

RUN命令在构建时执行(当您执行docker build时)。您需要的是CMDENTRYPOINT。这些中的任何一个都设置容器启动时运行的可执行文件(通过docker run

您的Dockerfile应该与@Rezney在答案中的内容类似。