Dockerfile – CMD不运行shell脚本

好吧,刚刚学习创build一个Dockerfile,我的理解(这可能是错误的)是CMD命令应该能够在容器内运行一个shell脚本。

我只是试着用香草apache2安装

Dockerfile

 FROM ubuntu:latest ADD install-apache.sh /Scripts/install-apache.sh RUN chmod +x /Scripts/install-apache.sh CMD [/Scripts/install-apache.sh] RUN echo "Hope this worked!" 

我也试过这个:

 CMD ["/Scripts/install-apache.sh"] 

当我使用RUN命令它工作(没有[和])

所以我有点失去了CMD应该做的事情。

我遵循http://kimh.github.io的指示,并通过docker文档阅读。

问题:我如何使用CMD错误,在这种情况下应该如何使用它?

  • 在您构build图像时执行RUN 。 这通常用于安装东西或在生成的图像中执行修改。
  • CMD在容器启动时执行。 用这个来启动应用程序。

另外检查文档

CMD的主要目的是为正在执行的容器提供默认值。 这些默认值可以包含可执行文件,也可以省略可执行文件,在这种情况下,您还必须指定一个ENTRYPOINT指令。