我是docker的新手,并试图了解如何创建dockerfiles。 尝试相同的时候我创建了这个示例文件
FROM debian
RUN apt-get update && apt-get upgrade -y
RUN apt-get install apache2 -y
COPY ./index.html /etc/www/html/
CMD service apache2 start && /bin/bash
CMD部分一直困惑我,我正在使用/ bin / bash,主要是因为我读到了某个地方,我们需要确保在我们提出它时Docker Image中有一些运行命令。我用它来运行图像: -
docker run -t -p 5000:8080 --name myfinal 912ccd578eae
我使用构建的图像的ID。正如你所看到的,我是一个新手,即使是最细微的细节也会有所帮助。
答案 0 :(得分:2)
apache2的常用CMD
应为
CMD ["/usr/sbin/apache2", "-D", "FOREGROUND"]
这样,您就不必使用“bash”技巧来保持前台进程的运行 任何退出信号都会正确影响apache2进程,而不是bash进程。
此处不需要ENTRYPOINT
:Docker维护默认入口点/bin/sh
所以这个(CMD
)与:
/bin/sh -c “apachectl -D FOREGROUND”