您当前的位置:首页 > 电脑百科 > 程序开发 > 容器

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

时间:2023-07-05 13:51:55  来源:  作者:T锅侠

Docker compose 是一种用于定义和运行多容器 Docker 应用程序的工具。它允许用户使用 YAML 文件来配置应用程序的服务,网络和卷,然后使用一个命令来创建和启动所有的服务。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-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两者的优点,可以非常直观地展示复杂系统之间的服务依赖关系,它降低了理解和调试复杂系统的难度。

 

 

 

compose-viz

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

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

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

 

结论

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

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

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



Tags:docker compose   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Docker与Docker Compose入门:释放你应用部署的威力
今天给大家介绍一项强大而有趣的技能,那就是使用 Docker 和 Docker Compose 来释放你的应用部署的威力!无论你是一名开发人员还是系统管理员,掌握这个技能都将为你的工作带来巨...【详细内容】
2024-01-17  Search: docker compose  点击:(65)  评论:(0)  加入收藏
使用Docker Compose搭建高可用Redis集群
  如今业务系统对于缓存Redis的依赖似乎是必不可少的,我们可以在各种各样的系统中看到Redis的身影。考虑到系统运行的稳定性,Redis的应用和MySQL数据库一样需要做到...【详细内容】
2023-11-13  Search: docker compose  点击:(192)  评论:(0)  加入收藏
使用Docker Compose编排多个容器
使用Docker Compose编排多个容器是一种简单而强大的方式,可以在单个文件中定义、配置和管理多个容器。它使得部署和管理复杂的应用程序变得更加容易和可靠。下面将介绍Docker...【详细内容】
2023-11-02  Search: docker compose  点击:(272)  评论:(0)  加入收藏
三种可视化方法帮助您轻松理解Docker Compose架构
无论您是初学者还是经验丰富的开发人员,阅读Docker Compose的架构可能会令人感到困惑。Docker Compose是一个优质的工具,用于在Docker容器中定义和运行多个服务。然而,其复杂的...【详细内容】
2023-08-01  Search: docker compose  点击:(378)  评论:(0)  加入收藏
看不懂docker compose,用可视化的三个方法轻松读懂架构
Docker compose 是一种用于定义和运行多容器 Docker 应用程序的工具。它允许用户使用 YAML 文件来配置应用程序的服务,网络和卷,然后使用一个命令来创建和启动所有的服务。Doc...【详细内容】
2023-07-05  Search: docker compose  点击:(274)  评论:(0)  加入收藏
使用 Docker Compose 一键安装 novel 项目的开发环境
背景novel 项目的技术栈比较多,很多同学都曾经向我反映过安装完全部环境需要花大量时间,甚至有的小伙伴可能嫌麻烦就直接放弃了,为了解决这个问题,今天花了好几个小时整了个一键...【详细内容】
2023-03-31  Search: docker compose  点击:(333)  评论:(0)  加入收藏
Docker从入门到精通之Docker Compose
Compose是一个用于定义和运行多容器Docker应用程序的工具。使用Compose,您可以使用YAML文件来配置应用程序的服务。然后,只需一个命令,就可以从配置中创建并启动所有服务。Inst...【详细内容】
2022-05-16  Search: docker compose  点击:(435)  评论:(0)  加入收藏
Docker 容器编排利器 Docker Compose
Compose 简介    通过前面几篇文章的学习,我们可以通过 Dockerfile 文件让用户很方便的定义一个单独的应用容器。然而,在日常工作中,经常会碰到需要多个容器相互配合来完成...【详细内容】
2020-09-08  Search: docker compose  点击:(310)  评论:(0)  加入收藏
Docker Compose 网络设置,你了解多少?
基本概念默认情况下,Compose会为我们的应用创建一个网络,服务的每个容器都会加入该网络中。这样,容器就可被该网络中的其他容器访问,不仅如此,该容器还能以服务名称作为hostname...【详细内容】
2019-10-24  Search: docker compose  点击:(637)  评论:(0)  加入收藏
▌简易百科推荐
Docker 和传统虚拟机有什么区别?
我有一个程序员朋友,他每年情人节都要送女朋友一台服务器。他说:“谁不想在过节当天收到一台 4核8g 的服务器呢?”“万一对方不要,我还能留着自己用。” 给他一次过节的机会,他能...【详细内容】
2024-03-26  小白debug  微信公众号  Tags:Docker   点击:(12)  评论:(0)  加入收藏
掌握Docker网络驱动程序:优化容器通信
Docker为在容器内包装、交付和运行应用程序提供了一个强大的平台,从而彻底改变了容器化。网络是容器化的重要组成部分,Docker提供了各种网络驱动程序来支持容器之间的通信以...【详细内容】
2024-03-22    51CTO  Tags:Docker   点击:(10)  评论:(0)  加入收藏
Containerd容器管理
Nginx 指定容器名称 使用 ctr container create 命令创建容器后,容器并没有处于运行状态,其只是一个静态的容器。容器基本操作容器基本操作主要是 ctr image 命令,查看命令帮...【详细内容】
2024-03-20  云原生运维圈  微信公众号  Tags:容器   点击:(13)  评论:(0)  加入收藏
如何基于Docker镜像逆向生成Dockerfile
引言你是否曾经遇到过一个想要使用的 Docker 镜像,但却无法修改以适应你的特定需求?或者你可能发现了一个喜欢的 Docker 镜像,但想要了解它是如何构建的?在这两种情况下,将 Docke...【详细内容】
2024-03-07  云原生运维圈  微信公众号  Tags:Docker   点击:(22)  评论:(0)  加入收藏
Kubernetes是什么?主要特点是什么?
Kubernetes是什么?Kubernetes,也称为K8s,是一个开源的容器编排系统,由Google首次开发和维护。它允许容器化的应用程序在集群中自动部署、扩展和管理。Kubernetes提供了一种容器...【详细内容】
2024-02-01    简易百科  Tags:Kubernetes   点击:(154)  评论:(0)  加入收藏
我们一起聊聊容器资源自愈
在企业实际在使用容器这类资源的时候,除了技术本身,要考虑的其他问题也会很多。企业管理的容器有千千万万,出于效率考虑,对于有特殊需求的容器如何进行批量创建和管理呢,这就需要...【详细内容】
2024-01-30  匠心独运维妙维效  微信公众号  Tags:容器   点击:(47)  评论:(0)  加入收藏
Docker与Docker Compose入门:释放你应用部署的威力
今天给大家介绍一项强大而有趣的技能,那就是使用 Docker 和 Docker Compose 来释放你的应用部署的威力!无论你是一名开发人员还是系统管理员,掌握这个技能都将为你的工作带来巨...【详细内容】
2024-01-17  waynblog  微信公众号  Tags:Docker   点击:(65)  评论:(0)  加入收藏
Docker镜像与容器的交互及在容器内部执行代码的原理与实践
Docker作为一种流行的容器技术,已经成为现代应用程序开发和部署的重要工具。在Docker中,镜像是构建和运行容器的基础,而容器则是基于镜像创建的可执行实例。Docker镜像与容器的...【详细内容】
2024-01-10  编程技术汇  今日头条  Tags:Docker   点击:(77)  评论:(0)  加入收藏
如何在 Ubuntu 上安装 Docker
使用 Docker 意味着开启一个新的计算领域,但如果你刚刚开始使用 Docker,安装可能看起来是一项艰巨的任务。在 Ubuntu 上安装 Docker 有两种推荐的方法: 从 Ubuntu 的仓库安装 D...【详细内容】
2024-01-04    Linux中国  Tags:Docker   点击:(124)  评论:(0)  加入收藏
从Kubernetes的探针到DevOps
今天在群里又看有人问如何设置 Kubernetes 的探针,感觉要补充的话太多了,结合我们在一些 DevOps 项目中痛苦的体验,今天一劳永逸的全部说完,此外,也为大家展现一下为什么 DevOps...【详细内容】
2023-12-27  云云众生s  微信公众号  Tags:Kubernetes   点击:(114)  评论:(0)  加入收藏
相关文章
    无相关信息
站内最新
站内热门
站内头条