在Docker容器中的初始化进程(PID1进程)在容器进程管理上具有特殊意义。它可以被Dockerfile中的
ENTRYPOINT
或
CMD
指令所指明;也可以被
docker run
命令的启动参数所覆盖。
- 每个容器有独立的PID名空间,
- 容器的生命周期和其PID1进程一致
- 利用
可以进入到容器的名空间中启动进程docker exec
- 容器的PID1进程需要能够正确的处理SIGTERM信号来支持优雅退出。
- 如果容器中包含多个进程,需要PID1进程能够正确的传播SIGTERM信号来结束所有的子进程之后再退出。
- 确保PID1进程是期望的进程。缺省sh/bash进程没有提供SIGTERM的处理,需要通过shell脚本来设置正确的PID1进程,或捕获SIGTERM信号。