DiagramPreview
高级预览Live previewExportDeveloper tool

Dockerfile 可视化

将 Dockerfile 构建阶段和指令可视化为步骤图。

示例
预览结果就绪
预览结果会显示在这里。

下一步可以继续

把当前预览结果带到相关工具里继续转换、排查或导出。

使用方法

  1. 1粘贴 Dockerfile,或加载 Node、Python、多阶段构建示例。
  2. 2检查构建阶段、指令顺序、复制产物,以及 latest、缺少 USER 等提示。
  3. 3确认构建依赖没有进入最终运行时镜像。
  4. 4需要在 PR 或 runbook 里解释镜像结构时,可以导出图。

常见场景

Dockerfile review容器安全说明多阶段构建解释AI Dockerfile 校验平台 onboarding

常见问题

优先检查哪些 Dockerfile 风险?

先看基础镜像是否固定版本、是否缺少 USER、是否有 curl | sh、remote ADD,以及最终镜像里是否残留包管理器缓存。

这个工具能证明镜像安全吗?

不能。它是可视化 review 辅助,仍需要镜像扫描、依赖固定和运行时测试。

为什么要把 Dockerfile 可视化?

多阶段构建的边界、复制产物和运行时依赖用图更容易解释,特别适合 PR review。

Dockerfile Visualizer 会把构建阶段、基础镜像、COPY/RUN 指令和运行时决策转成更容易 review 的图。

它适合检查 AI 生成 Dockerfile 里“能构建但不稳”的问题,例如 latest 标签、远程安装脚本、缺少 USER、运行时镜像包含过多依赖。

可用于 PR review、镜像加固、多阶段构建说明和平台新人 onboarding。

Demo:检查 Node Dockerfile 的生产风险

Dockerfile 本地能跑,不代表生产稳定。可视化后可以快速看到运行时镜像是否固定、是否足够小、是否以非 root 用户运行。

  • 优先使用 node:20-bookworm-slim,而不是 node:latest。
  • 用多阶段构建避免 devDependencies 进入运行时镜像。
  • 应用不需要 root 权限时,应添加 USER。
FROM node:20-bookworm-slim AS deps
WORKDIR /app
COPY package*.json ./
RUN npm ci

FROM node:20-bookworm-slim
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .
USER node
CMD ["npm", "start"]

预览图应能展示依赖阶段、运行时阶段、复制产物和非 root 运行决策。

PR 里值得说明的 Dockerfile 警告

当预览提示可疑指令时,最好转成具体 review 评论,而不是只说“不安全”。

  • FROM latest 会让重建结果在没有代码变更时发生变化。
  • curl | sh 隐藏安装脚本行为,审计困难。
  • apt-get install 后不清理缓存会增大镜像并保留构建依赖。

Dockerfile 可视化 检查清单

当你需要在文档、PR、故障复盘或交接材料发布前检查源码内容时,可以使用 Dockerfile 可视化。将 Dockerfile 构建阶段和指令可视化为步骤图。

导出前建议检查标签是否可读、关系是否和源码一致、示例是否包含敏感信息,以及修改输入后预览是否仍然成立。

限制与排查

如果预览失败,先把输入缩小到最小完整示例,确认格式语法,再逐段加回内容。很多失败来自不完整文件、缩进错误、缺少图表头,或复制了依赖隐藏上下文的片段。

请把预览结果当作 review 界面,而不是生产事实来源。生成的图表、转换文件、看板和规则示例在进入正式文档或运维流程前仍需要人工确认。

可测试的示例输入

  • Node: FROM node:22-alpine WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . RUN npm run build EXPOSE 3000 CMD ["npm","start"]
  • Python: FROM python:3.12-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . CMD ["python","app.py"]
  • Multi-stage: FROM node:22 AS build WORKDIR /app COPY . . RUN npm run build FROM nginx:alpine COPY --from=build /app/dist /usr/share/nginx/html

工具完成度

高级预览

高级解析

这个工具会从开发者输入中提取结构和关系,适合调试与文档 review;复杂边界仍建议回到源码确认。

分级不是质量打分,而是告诉用户当前工具更适合稳定导出、深度调试、快速解析,还是 AI 辅助生成。