免费工具

Docker Compose 转图表

粘贴 docker-compose.yml,即可以图表形式查看其中的服务、网络、卷和依赖关系。试用无需账号。

示例输出

由 Docker Compose 示例绘制的示例图表

有 Kubernetes 清单? 试试 Kubernetes YAML 工具

使用方法

  1. 粘贴或拖入 Compose 文件

    就是你用 docker compose up 运行的 docker-compose.yml 或 compose.yaml。YAML 锚点和 x- 扩展字段都没问题。

  2. 查看图表

    每个服务会变成一张卡片,显示镜像、端口和副本数。网络会变成框,具名卷、secret 和 config 会连接到使用它们的服务。

  3. 在 Archboard 中打开

    保存为新图表后,可以重新排列、添加注释、分享链接,或导出为 SVG 和 PNG。注册只需 Google 或 GitHub 账号。

从 Compose 文件中绘制哪些内容

图表根据文件中的以下键生成:

  • services

    每个服务一张卡片,以其键名命名

  • imagebuild

    镜像;从源码构建的服务则显示构建上下文

  • ports

    端口,例如 8080:80 或 80(不含主机 IP;长格式显示为 published:target,非 TCP 时附带协议)

  • deploy.replicasscale

    deploy.replicas 或 scale 中的副本数

  • volumes

    具名卷,并连接到挂载它们的服务

  • secretsconfigs

    secret 和 config 仅显示名称,并连接到使用它们的服务

  • networks

    网络显示为框,每个服务放在其第一个网络的框中

  • depends_on

    从一个服务指向其所依赖服务的连接

如果没有 networks 键,整个项目会绘制为一个框。如果定义了网络,每个服务会放在其第一个网络的框中,并连接到它加入的其他网络的框。

图表不能显示什么

  • 运行时哪些服务相互调用;depends_on 只决定启动顺序,Compose 文件描述的是服务之间如何关联,而不是实际流量
  • 环境变量的值、env_file 的内容,以及 secret 和 config 的内容(只读取名称)
  • 正在运行的容器、健康状态、日志或资源用量
  • 通过 extends 继承的字段(即使来自同一文件中的服务),以及通过 include 引入的文件中的服务;只绘制每个服务中直接写出的字段

常见问题

支持哪些 Compose 文件?

任何顶层带有 services 键的 docker-compose.yml 或 compose.yaml 都可以,包括以 version 行开头的旧文件。每次粘贴一个文件。

变量和 .env 文件会怎样处理?

变量不会被替换:用变量写的镜像或端口会按原样显示。environment 下的值和 env_file 中列出的文件都不会读取。

可以粘贴 override 文件或多个文件吗?

每次粘贴一个文件。docker-compose.override.yml 这类 override 文件会被单独读取:请粘贴包含你想查看的服务的文件,或先把多个文件合并为一个。include 引用的文件不会被跟进读取,extends 也不会被解析。即使在同一文件中,也只绘制该服务中直接写出的字段。

在 Archboard 中打开图表后会怎样?

你看到的图表(形状、名称和连接)会保存为工作区中的新图表,你可以重新排列、添加备注、分享或导出。它只是一个起点:之后对 Compose 文件的修改不会更新该图表。

这个工具免费吗?

免费。粘贴 Compose 文件和查看图表都无需账号。在 Archboard 中打开需要一个免费账号。

一分钟打开画布

使用 Google 或 GitHub 登录。单席位免费,团队加入后再升级。