测验:运行与生命周期
容器退出代码为 137。以下哪项是不可能的原因?
- 停止宽限期已过并且发生了 SIGKILL。
- OOM Killer 由于超出内存限制而杀死了 cgroup
- 有人直接发送了SIGKILL
- 名为
exit(137)的应用程序
将CMD npm start更改为CMD ["node","server.js"]将关闭时间从 10 秒减少到 0.3 秒。直接原因是什么?
- 已达到 SIGTERM,因为 PID 1 是实际的服务器进程,而不是 shell/包装器
- Node 执行本质上比 npm 执行更快。
- exec 格式发送信号两次
- JSON 数组减少宽限时间
为什么入口点脚本的最后一行写成exec "$@"?
- 增加可以传递的参数数量
- 将脚本进程替换为目标进程,使目标进程的 PID 为 1。
- 使脚本的退出代码始终为 0
- 我试图按原样传递设置的环境变量。
建议将 init 类型进程放在 PID 1 中的最准确原因是什么?
- 这是因为如果采用并终止孤立进程,僵尸就不会累积。
- 因为它将孩子们的日志收集在一处。
- 因为它节省了进程内存
- 因为它加快了容器的重启速度。
分开docker create和docker run的最合适理由是什么?
- 这是因为容器元数据(设置/快照)和执行状态(进程)是不同的概念。
- 两种方法之间存在性能差异
- 首先使用 create 创建它比运行它更安全。
- 因为必须首先连接网络的顺序。
重启策略on-failure:3是什么意思?
- 每 3 秒重新启动一次
- 仅当退出代码不为 0 时最多重新启动 3 次
- 如果失败 3 次,您将被永久停职。
- 总是重新启动,但仅限 3 分钟