Docker 镜像与 Dockerfile 构建
Docker、Nginx 与 Python 项目部署#Python全栈#第十九阶段#Docker、Nginx 与 Python 项目部署#Docker 镜像与 Dockerfile 构建约 878 字 · 3 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
镜像、容器、仓库、标签和摘要分别是什么?
追问 一个镜像能启动多少个容器?为什么相同标签以后可能指向不同内容,怎样记录实际发布的镜像版本?
Docker 构建上下文与 .dockerignore 有什么作用?
追问 COPY 可以读取什么范围?怎样排除虚拟环境、Git 文件、测试产物和秘密文件,避免把无关内容送入构建?
FROM、WORKDIR、COPY、RUN、ENV 与 USER 分别在哪个阶段生效?
追问 安装依赖和启动服务为什么属于不同阶段?工作目录、环境变量和运行用户怎样影响后续指令与最终容器?
CMD 与 ENTRYPOINT 有什么区别,运行时参数怎样覆盖?
追问 同一个应用镜像怎样启动 Web 与任务 Worker?JSON 数组形式与 Shell 形式如何影响参数、变量展开和停止信号?
Docker 构建缓存怎样影响依赖安装与代码更新?
追问 为什么通常先复制依赖文件再复制业务代码?修改某一层后后续层怎样处理,缓存加速是否等于依赖会自动更新?
Python 基础镜像应怎样选择,而不是只比较体积?
追问 Python 版本、CPU 架构、系统库、manylinux/musllinux Wheel 与编译依赖怎样核对?slim 与 Alpine 各需要哪些实际验证?
多阶段构建怎样减少最终镜像中的构建工具与产物?
追问 编译阶段生成的 Wheel 或前端产物怎样进入运行阶段?动态库、解释器版本和目标架构不一致时为什么仍可能无法运行?
ARG、ENV 与构建秘密挂载应该怎样区分?
追问 私有依赖仓库凭据为何不应直接写进普通构建参数或镜像环境?删除当前文件为什么不等于消除旧层内容,秘密怎样限制使用范围?
依赖锁定、基础镜像固定与定期更新怎样配合?
追问 标签与 digest 各能固定什么?为什么固定版本不等于永久安全,更新后需要重新验证哪些运行与业务行为?
镜像在本机运行正常,到另一台服务器失败,应怎样检查?
追问 架构、入口权限、换行、动态库和遗漏文件怎样排查?怎样使用干净容器验证,不依赖开发机挂载进去的代码或依赖?