Dockerfile - CMD不运行shell脚本

jwk*_*knz 2 cmd docker dockerfile

好了,只是学习创建一个Dockerfile,我的理解(这可能是错误的)是该CMD命令应该能够在容器内放置一个shell脚本.

我只是尝试使用vanilla 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!"
Run Code Online (Sandbox Code Playgroud)

我也试过这个:

CMD ["/Scripts/install-apache.sh"]
Run Code Online (Sandbox Code Playgroud)

当我使用RUN它的命令时(没有[和])

所以我有点迷失了CMD想要做的事情.

我按照http://kimh.github.io的说明进行操作, 并阅读了docker文档.

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

Seb*_*ian 5

  • RUN在构建图像时执行.这通常用于在生成的图像中安装或执行修改.
  • CMD在容器启动时执行.使用它来启动应用程序.

另请查看文档

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

  • 是的.您可以将`CMD [/Scripts/install-apache.sh]`更改为`RUN/Scripts/install-apache.sh`,它可以完成您期望的操作.作为`CMD`的一个例子,你可能想要`CMD ["httpd"," - DWOREGROUND"]`这样的容器在容器启动时自动为你启动apache. (4认同)