天天看点

看不懂docker compose,用可视化的三个方法轻松读懂架构

作者:T锅侠
看不懂docker compose,用可视化的三个方法轻松读懂架构

Docker compose 是一种用于定义和运行多容器 Docker 应用程序的工具。它允许用户使用 YAML 文件来配置应用程序的服务,网络和卷,然后使用一个命令来创建和启动所有的服务。Docker compose 的优点是可以简化复杂的应用程序的部署和管理,提高开发和测试的效率,以及实现跨平台的兼容性。

看不懂docker compose,用可视化的三个方法轻松读懂架构

Docker compose 的缺点是它不提供可视化的界面来查看和分析应用程序的结构和状态。这对于理解和优化应用程序的性能和资源利用有一定的困难。因此,有一些第三方的工具可以帮助用户实现 Docker compose 的可视化,例如 docker-compose-viz,docker-compose-viz-mermaid和compose-viz。下面将分别介绍这些工具的特点和用法。

docker-compose-viz

docker-compose-viz是一个开源的工具,它可以将Docker Compose文件转换为图形,以便更直观地展示容器之间的服务,项目,链接,卷,依赖,端口,扩展服务和网络等信息。它可以帮助用户更好地理解和优化他们的Docker Compose配置。

看不懂docker compose,用可视化的三个方法轻松读懂架构

要使用docker-compose-viz工具,您需要先安装Docker和Docker Compose,并且有一个有效的Docker Compose文件。然后,您可以使用两种方式来安装docker-compose-viz工具:

  • 使用docker run命令来运行一个docker-compose-viz的镜像,并将您的Docker Compose文件挂载到该镜像中。
  • 使用git clone命令来下载docker-compose-viz的源码,并且安装GraphViz软件来生成图形。

安装完成后,您可以使用render命令来生成Docker Compose文件的图形,并指定输出格式和输出文件。您也可以使用一些选项来控制图形的显示方式,如是否显示卷,是否显示水平图形,是否忽略覆盖文件等。

生成的图形中,您可以看到不同形状和颜色的元素来表示不同类型的信息。例如:

  • 矩形表示服务,实际上可以包括若干运行相同镜像的容器实例。
  • 平行四边形表示项目,由一组关联的应用容器组成的一个完整业务单元。
  • 实线箭头表示链接,指向声明链接的服务,并显示链接别名。
  • 虚线箭头表示依赖,指向声明依赖的服务。
  • 圆圈表示端口,指向声明端口的服务,并显示端口映射。
  • 文件夹表示卷,指向使用卷的服务,并显示挂载路径和读写权限。
  • 倒三角形表示扩展服务,指向扩展服务的服务。
  • 五边形表示网络,指向使用网络的服务,并显示网络别名。

docker-compose-viz-mermaid

docker-compose-viz-mermaid是一个用于生成docker-compose文件的可视化图形的工具,它使用了mermaid.js这个流行的图形库。这个工具可以帮助用户更好地理解和管理他们的docker容器和服务之间的依赖关系和连接。docker-compose-viz-mermaid可以通过命令行或者web界面来使用,它可以输出svg或者png格式的图像文件,也可以直接在浏览器中查看和编辑图形。

Mermaid是一个用于绘制流程图、序列图、甘特图等图表的文本标记语言,类似Markdown。它的语法简单易学,通过代码块定义图表内容,非常适合将复杂的系统结构用图形方式呈现。

Docker Compose Viz包含一个简单的JAR程序,可以通过命令行运行。给它一个Docker Compose文件,它会解析出服务及其之间的依赖,并输出为Mermaid语言描述的文本。

主要功能包括:

  • 显示服务之间的links和depends_on依赖
  • 提取服务的端口、卷、网络等信息
  • 推断通过环境变量的隐式依赖关系
  • 识别数据库服务等常见组件

我们只需要使用docker-compose-viz命令,就可以得到Mermaid文本方式的关系图。默认输出到控制台,也可以保存为文件。

Docker Compose Viz (Mermaid)这个工具结合了Docker Compose和Mermaid两者的优点,可以非常直观地展示复杂系统之间的服务依赖关系,它降低了理解和调试复杂系统的难度。

看不懂docker compose,用可视化的三个方法轻松读懂架构

compose-viz

Compose-viz是一个基于Compose-spec的可视化工具,可以将Compose文件转换为图形,支持多种格式。如果您正在使用Compose-spec实现之一,那么Compose-viz是一个很好的选择。要使用该工具,您需要安装Graphviz。

Compose-viz使用Python编写,可以从GitHub上下载或通过pip安装。它提供了一个简单的命令行界面,让用户可以指定Compose文件的路径和输出格式。目前支持的格式有dot、png、svg、jpg和pdf。用户还可以通过选项来调整图形的样式和布局。

Compose-viz的一个示例用法是将docker-compose beginner tutorial中的yml文件转换为png图像,并在浏览器中查看结果。该图像显示了应用程序中包含的服务、容器、网络和卷之间的关系。

看不懂docker compose,用可视化的三个方法轻松读懂架构

结论

根据上面的介绍,我们可以看到,docker-compose 可视化有以下几个好处:

  • 可以让开发者更方便地管理和监控多个服务的运行状态和资源消耗。
  • 可以让开发者更清楚地看到服务之间的依赖关系和网络连接。
  • 可以让开发者更快速地调试和排除问题,比如查看日志,执行命令,重启服务等。
  • 可以让开发者更容易地部署和更新服务,比如拉取镜像,修改配置,启动或停止服务等。

因此,docker-compose 可视化是一个有用的工具,可以提高开发效率和质量。