Docker Desktop 构建视图深度解析:从入门到精通
docs Source repo for Docker's Documentation 项目地址: https://gitcode.com/gh_mirrors/docs3/docs
前言
Docker Desktop 作为开发者日常工作中不可或缺的工具,其构建功能一直是容器化开发流程中的核心环节。本文将深入解析 Docker Desktop 中的 Builds(构建)视图功能,帮助开发者全面掌握构建过程的管理与优化技巧。
构建视图概览
Docker Desktop 的构建视图提供了一个直观的图形化界面,用于:
- 查看构建历史记录
- 监控正在进行的构建任务
- 管理构建器(Builders)
视图默认显示"构建历史"标签页,按日期降序排列已完成构建。切换到"活动构建"标签页可查看当前正在进行的构建任务。
重要提示
对于 Windows 容器镜像构建,默认使用传统构建器(legacy builder),这些构建不会显示在构建视图中。如需使用 BuildKit(推荐),可采用以下任一方式:
- 在构建命令前设置环境变量:
DOCKER_BUILDKIT=1 docker build .
- 直接使用 Buildx 命令:
docker buildx build
构建列表详解
通过 Docker Dashboard 打开构建视图,可以看到:
- 构建历史:已完成构建的详细记录,包含日志、依赖项、跟踪信息等
- 活动构建:当前正在执行的构建任务
注意:仅显示来自活动运行构建器的构建,已移除或停止的构建器产生的构建不会显示。
构建器管理
视图右上角显示当前选中的构建器名称,通过"构建器设置"按钮可进入 Docker Desktop 设置管理构建器。
构建导入功能
构建视图提供了"导入构建"功能,允许开发者:
- 导入他人完成的构建记录
- 导入 CI 环境中的构建记录
导入后,可以在 Docker Desktop 中直接查看完整的构建日志、跟踪数据等信息。
构建深度分析
选择特定构建后,可以进入详细检查视图,包含多个分析标签页:
信息标签页
显示构建的详细信息,对于多平台构建,可通过右上角下拉菜单筛选特定平台信息。
构建时间分析
包含多种时间维度图表:
- 实际时间:构建完成的挂钟时间
- 累计时间:所有步骤的 CPU 时间总和
- 缓存使用:构建操作使用缓存的比例
- 并行执行:并行运行步骤所花费的时间
图表使用不同颜色区分各类构建操作:
| 操作类型 | 描述 | |-------------------|----------------------------------------------------------------------| | 本地文件传输 | 客户端到构建器的文件传输时间 | | 文件操作 | 文件创建和复制操作(如 Dockerfile 中的 COPY、WORKDIR、ADD 指令) | | 镜像拉取 | 拉取镜像的时间 | | 执行 | 容器执行(如 Dockerfile 中的 RUN 指令) | | HTTP | 使用 ADD 指令下载远程资源的时间 | | Git | 使用 ADD 指令下载 Git 仓库的时间 | | 结果导出 | 导出构建结果的时间 | | SBOM | 生成软件物料清单(SBOM)证明的时间 | | 空闲 | 构建工作线程的空闲时间 |
构建依赖分析
显示构建过程中使用的资源:
- 容器镜像
- 通过 ADD 指令引入的 Git 仓库
- 通过 ADD 指令引入的 HTTPS 资源
配置参数分析
显示构建使用的参数:
- 构建参数(包含解析后的值)
- 密钥(仅显示 ID,不显示值)
- SSH 套接字
- 标签
- 额外上下文
构建结果分析
显示生成的构建产物信息:
- 镜像清单详情
- 证明(Attestations)
- 构建跟踪(Traces)
证明是附加到容器镜像的元数据记录,描述镜像的相关信息(如构建方式、包含的软件包等)。
构建跟踪以两种格式提供:OTLP 和 Jaeger。可通过操作菜单下载。
使用 Jaeger 分析构建跟踪
-
启动 Jaeger UI:
docker run -d --name jaeger -p "16686:16686" jaegertracing/all-in-one
-
在 Docker Desktop 构建视图中选择已完成构建
-
在"构建结果"部分,通过操作菜单选择"下载为 Jaeger 格式"
-
浏览器访问
http://localhost:16686
打开 Jaeger UI -
选择"上传"标签页,导入刚下载的构建跟踪文件
源代码与错误分析
对于成功构建或进行中的构建,"源代码"标签页显示用于创建构建的前端。
如果构建失败,则会显示"错误"标签页,错误信息会内联在 Dockerfile 源代码中,明确指出失败位置和原因。
构建日志分析
"日志"标签页显示构建日志,对于活动构建会实时更新。
提供两种查看模式:
- 列表视图:以可折叠格式显示所有构建步骤,带有时间轴导航
- 纯文本视图:显示原始日志文本
可通过"复制"按钮将日志复制到剪贴板。
构建历史分析
"历史"标签页显示已完成构建的统计数据。
时间序列图表展示以下趋势:
- 构建持续时间
- 构建步骤数量
- 缓存使用情况
通过分析这些趋势,可以识别构建操作中的模式变化,如构建时间显著增加或缓存未命中率高,可能意味着需要优化 Dockerfile。
构建器管理进阶
在"设置"的"构建器"标签页中,可以:
- 检查活动构建器的状态和配置
- 启动/停止构建器
- 删除构建历史
- 添加/移除构建器(对于云构建器为连接/断开)
结语
Docker Desktop 的构建视图为开发者提供了强大的构建过程可视化和管理工具。通过本文介绍的各类功能,开发者可以更高效地监控、分析和优化构建流程,提升容器化开发的整体效率。建议结合自身项目特点,充分利用这些功能来改善构建性能。
docs Source repo for Docker's Documentation 项目地址: https://gitcode.com/gh_mirrors/docs3/docs
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考