Dockerfile-CMD不运行shell脚本
好的,我刚刚学习了创建Dockerfile,我的理解(可能是错误的)是,Dockerfile-CMD不运行shell脚本,docker,cmd,dockerfile,Docker,Cmd,Dockerfile,好的,我刚刚学习了创建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] R
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
命令时,它会工作(没有[and])
所以我有点不知道CMD
应该做什么。
我听从了老师的指示
并通读docker文档
问题:
我如何错误地使用CMD
,在这种情况下应该如何使用它?
在构建映像时执行。这通常用于在生成的映像中安装东西或执行修改RUN
在容器启动时执行。使用此选项可启动应用程序CMD
哦,所以当用户运行我正在构建的容器时,CMD会运行,而在我构建它时,run会使用吗?@JeffKranenburg ExactlyThank@Sebastian-会在几分钟后接受,如果so允许的话:-)是的。您可以直接将
CMD[/Scripts/install apache.sh]
更改为RUN/Scripts/install apache.sh
,它将完成您所期望的功能。作为CMD
的一个例子,您可能希望类似CMD[“httpd”,“-DFOREGROUND”]
的东西在容器启动时自动为您启动apache。但是我想在CMD上运行.sh文件,我如何实现这一点?