Docker容器里的进程为什么要前台运行?相同的问题:docker运行apache为什么带FOREGROUND参数?docker运行nginx为什么带`daemon off`参数?

时间:2022-06-17 07:26:21

《第一本Docker书》里面,讲到Docker容器启动web服务时,都指定了前台运行的参数。

例如apache:

ENTRYPOINT [ "/usr/sbin/apache2" ]
CMD ["-D", "FOREGROUND"]

又例如nginx:

ENTRYPOINT [ "/usr/sbin/nginx", "-g", "daemon off;" ]

为什么要这么做呢?因为Docker容器仅在它的1号进程(PID为1)运行时,会保持运行。如果1号进程退出了,Docker容器也就退出了。

参考:https://blog.csdn.net/code_runner/article/details/50879007