为什么不直接使用 shell 格式?exec 格式的使用场景是什么?

来源:3-8 镜像的发布

空堂

2019-12-12

课程中介绍了 CMD 与 ENTRYPOINT 可以接收 shell 格式与 exec 格式两种命令书写方式,但是很明显 shell 格式要比 exec 格式读写更加直观方便,那么为什么不统一使用 shell 格式呢?

我查了一些资料说 shell 格式会开启一个新的 shell 进程,为 PID1,该进程无法收到 docker stop 命令的信号,因此会强制杀死进程,导致无法平滑退出,但我不是很明白,即使这样又会有什么不利的影响呢?

能否请您在详细解释一下其中的区别?

谢谢。

写回答

1回答

麦兜搞IT

2019-12-13

这个是看需求的。有很多情况,我们是需要接受kill信号的,因为本身我们在docker里运行的程序可能需要处理这个信号,比如优雅的退出程序,否则就直接stop了,里面程序来不及优雅的关闭,进行一些处理。

2
1
空堂
好的,谢谢。
2019-12-13
共1条回复

系统学习Docker 践行DevOps理念

无论你是开发、测试还是运维,Docker都是你的必备技能。

3297 学习 · 1895 问题

查看课程