Docker Desktop 构建视图深度解析:从入门到精通

Docker Desktop 构建视图深度解析:从入门到精通

docs Source repo for Docker's Documentation docs 项目地址: https://gitcode.com/gh_mirrors/docs3/docs

前言

Docker Desktop 作为开发者日常工作中不可或缺的工具,其构建功能一直是容器化开发流程中的核心环节。本文将深入解析 Docker Desktop 中的 Builds(构建)视图功能,帮助开发者全面掌握构建过程的管理与优化技巧。

构建视图概览

Docker Desktop 的构建视图提供了一个直观的图形化界面,用于:

  • 查看构建历史记录
  • 监控正在进行的构建任务
  • 管理构建器(Builders)

视图默认显示"构建历史"标签页,按日期降序排列已完成构建。切换到"活动构建"标签页可查看当前正在进行的构建任务。

重要提示

对于 Windows 容器镜像构建,默认使用传统构建器(legacy builder),这些构建不会显示在构建视图中。如需使用 BuildKit(推荐),可采用以下任一方式:

  1. 在构建命令前设置环境变量:DOCKER_BUILDKIT=1 docker build .
  2. 直接使用 Buildx 命令:docker buildx build

构建列表详解

通过 Docker Dashboard 打开构建视图,可以看到:

  1. 构建历史:已完成构建的详细记录,包含日志、依赖项、跟踪信息等
  2. 活动构建:当前正在执行的构建任务

注意:仅显示来自活动运行构建器的构建,已移除或停止的构建器产生的构建不会显示。

构建器管理

视图右上角显示当前选中的构建器名称,通过"构建器设置"按钮可进入 Docker Desktop 设置管理构建器。

构建导入功能

构建视图提供了"导入构建"功能,允许开发者:

  • 导入他人完成的构建记录
  • 导入 CI 环境中的构建记录

导入后,可以在 Docker Desktop 中直接查看完整的构建日志、跟踪数据等信息。

构建深度分析

选择特定构建后,可以进入详细检查视图,包含多个分析标签页:

信息标签页

显示构建的详细信息,对于多平台构建,可通过右上角下拉菜单筛选特定平台信息。

构建时间分析

包含多种时间维度图表:

  1. 实际时间:构建完成的挂钟时间
  2. 累计时间:所有步骤的 CPU 时间总和
  3. 缓存使用:构建操作使用缓存的比例
  4. 并行执行:并行运行步骤所花费的时间

图表使用不同颜色区分各类构建操作:

| 操作类型 | 描述 | |-------------------|----------------------------------------------------------------------| | 本地文件传输 | 客户端到构建器的文件传输时间 | | 文件操作 | 文件创建和复制操作(如 Dockerfile 中的 COPY、WORKDIR、ADD 指令) | | 镜像拉取 | 拉取镜像的时间 | | 执行 | 容器执行(如 Dockerfile 中的 RUN 指令) | | HTTP | 使用 ADD 指令下载远程资源的时间 | | Git | 使用 ADD 指令下载 Git 仓库的时间 | | 结果导出 | 导出构建结果的时间 | | SBOM | 生成软件物料清单(SBOM)证明的时间 | | 空闲 | 构建工作线程的空闲时间 |

构建依赖分析

显示构建过程中使用的资源:

  • 容器镜像
  • 通过 ADD 指令引入的 Git 仓库
  • 通过 ADD 指令引入的 HTTPS 资源
配置参数分析

显示构建使用的参数:

  • 构建参数(包含解析后的值)
  • 密钥(仅显示 ID,不显示值)
  • SSH 套接字
  • 标签
  • 额外上下文

构建结果分析

显示生成的构建产物信息:

  • 镜像清单详情
  • 证明(Attestations)
  • 构建跟踪(Traces)

证明是附加到容器镜像的元数据记录,描述镜像的相关信息(如构建方式、包含的软件包等)。

构建跟踪以两种格式提供:OTLP 和 Jaeger。可通过操作菜单下载。

使用 Jaeger 分析构建跟踪
  1. 启动 Jaeger UI:

    docker run -d --name jaeger -p "16686:16686" jaegertracing/all-in-one
    
  2. 在 Docker Desktop 构建视图中选择已完成构建

  3. 在"构建结果"部分,通过操作菜单选择"下载为 Jaeger 格式"

  4. 浏览器访问 http://localhost:16686 打开 Jaeger UI

  5. 选择"上传"标签页,导入刚下载的构建跟踪文件

源代码与错误分析

对于成功构建或进行中的构建,"源代码"标签页显示用于创建构建的前端。

如果构建失败,则会显示"错误"标签页,错误信息会内联在 Dockerfile 源代码中,明确指出失败位置和原因。

构建日志分析

"日志"标签页显示构建日志,对于活动构建会实时更新。

提供两种查看模式:

  1. 列表视图:以可折叠格式显示所有构建步骤,带有时间轴导航
  2. 纯文本视图:显示原始日志文本

可通过"复制"按钮将日志复制到剪贴板。

构建历史分析

"历史"标签页显示已完成构建的统计数据。

时间序列图表展示以下趋势:

  • 构建持续时间
  • 构建步骤数量
  • 缓存使用情况

通过分析这些趋势,可以识别构建操作中的模式变化,如构建时间显著增加或缓存未命中率高,可能意味着需要优化 Dockerfile。

构建器管理进阶

在"设置"的"构建器"标签页中,可以:

  1. 检查活动构建器的状态和配置
  2. 启动/停止构建器
  3. 删除构建历史
  4. 添加/移除构建器(对于云构建器为连接/断开)

结语

Docker Desktop 的构建视图为开发者提供了强大的构建过程可视化和管理工具。通过本文介绍的各类功能,开发者可以更高效地监控、分析和优化构建流程,提升容器化开发的整体效率。建议结合自身项目特点,充分利用这些功能来改善构建性能。

docs Source repo for Docker's Documentation docs 项目地址: https://gitcode.com/gh_mirrors/docs3/docs

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邓朝昌Estra

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值