容器启动、进程、日志与资源限制
Docker、Nginx 与 Python 项目部署#Python全栈#第十九阶段#Docker、Nginx 与 Python 项目部署#容器启动、进程、日志与资源限制约 843 字 · 2 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
docker run、start、restart 与 exec 分别做什么?
追问 新建容器、启动已有容器与进入运行容器怎样区分?为什么 restart 不能自动把新的镜像和环境变量应用到旧容器?
为什么容器中的主要服务通常需要以前台方式运行?
追问 容器生命周期由什么进程决定?启动脚本把服务放到后台后退出,会造成什么现象,怎样保持退出状态可观察?
PID 1、信号转发与 exec 启动方式怎样影响停止行为?
追问 Shell 包装是否会把停止信号正确送给应用?容器等待期限、应用优雅退出与子进程回收怎样配合?
EXPOSE、端口发布与应用监听地址有什么区别?
追问 只写 EXPOSE 是否可以从宿主机访问?应用监听容器内 127.0.0.1 与 0.0.0.0 时,跨容器连接结果为什么不同?
容器启动后立即退出,应怎样获取排错证据?
追问 退出码、日志、实际启动命令和环境怎样核对?缺少依赖、导入失败与程序正常执行完毕如何区分?
应用日志怎样进入容器日志系统并保持及时输出?
追问 标准输出、标准错误和文件日志各怎样处理?Python 缓冲、日志格式、轮转与保留上限如何影响排错和磁盘使用?
HEALTHCHECK 与 restart policy 分别负责什么?
追问 进程仍存在但健康失败时,Docker Engine 是否会仅因此自动重启或停止流量?怎样明确检查结果由谁处理,而不是假定它能自动修复?
容器 CPU、内存限制怎样影响 Python 服务?
追问 进程看到的宿主机 CPU 数量与实际可用配额是否相同?Worker 太多、内存峰值和 OOM 退出怎样从状态与日志验证?
非 root 用户、只读文件系统与最小运行权限怎样落实?
追问 日志、上传、缓存和临时文件分别需要写入哪里?为什么权限失败不应直接用 privileged 或把所有目录开放写入解决?
为什么不应依赖进入容器手工修改文件作为正式修复?
追问 容器重建后修改会怎样?怎样把修复回到代码、镜像或声明配置,并验证新的实例与旧实例行为一致?
运行核对资料: Docker:Running containers。