了解 Docker Compose

作者 : 慕源网 本文共2243个字,预计阅读时间需要6分钟 发布时间: 2021-12-31 共262人阅读

介绍

Docker Compose 是一个运行多容器应用程序的工具,我发现它是一种非常方便的机制,可以将应用程序的所有分布式组件部署到本地环境中。

假设您正在从事一个微服务开发项目,其中架构中有各种微服务和组件,比如说微服务是使用编排模式设计的,其中一个服务(服务 A)通过向 Kafka 主题和服务 B 发布事件来与另一个服务进行通信消费此事件以进行进一步处理,并且在进一步处理中,服务 B 可能会调用另一个 REST 服务或将事件信息保存到数据库或将消息发布到另一个 Kafka 主题或队列。Kafka 工作还需要 Zookeeper,其他 REST 服务在我们本地工作可能需要一些其他组件。

我们手动设置所有这些组件将非常困难,有些可能有效,有些可能无效,这就是 Docker Compose Scales 并为我们显着简化这些步骤的地方,我们只需要一个 .yml 文件,我们将在其中指定我们所有的服务,它们的依赖项和一个 docker-compose up 命令,这些组件将被部署,并且多容器应用程序已准备好供我们使用。

设置

一般来说,设置 Docker Compose 是一个两步过程。

步骤1

在第一步中,我们将使用以下命令设置 Docker 引擎:“sudo apt-get install docker.io”

验证 docker 设置:“sudo docker ps”

容器 ID 镜像命令创建状态端口名称

第二步

第二步是使用命令设置 docker-compose 工具:“sudo apt install docker-compose”

就是这样,Docker Compose 设置已准备好供我们使用。

例子

为了理解基础知识,我使用了链接https://docs.docker.com/compose/samples-for-compose/ 中的一个示例,该存储库包含许多 docker-compose 示例供我们使用,这是一个了不起的存储库

我正在使用具有多个集成服务的示例之一

此示例包含三个服务,ELK 堆栈是我用于微服务调试目的的最爱之一。所需的服务是,

  1. Elasticsearch
  2. Logstash
  3. Kibana

让我们简要了解一下它们是什么,

  1. Elasticsearch 是一个搜索和分析引擎。
  2. Logstash 是摄取数据的服务器端数据处理管道。
  3. Kibana 用于用户调试,通过漂亮的图形和图表帮助我们进行错误/数据可视化。

只需使用存储库中相同的 docker-compose.yml 文件即可。

命令

docker-compose up

.yml 文件中提到的所有服务都将立即可用。

docker-compose up -d

要在后台运行命令,应使用“-d”标志,服务将保持在后台运行,-d 代表分离模式。

docker-compose ps

ps 命令列出容器并提供详细信息,例如端口、状态、服务是否健康、是否已启动或已退出。

Name  Command                          State                        Ports
—————————————————————————————————–
es   /bin/tini — /usr/local/bi …        Up (healthy)     0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp
kib   /bin/tini — /usr/local/bi …       Up                    0.0.0.0:5601->5601/tcp
log   /usr/local/bin/docker-entr … Exit                   0

docker-compose stop

stop 命令停止正在运行的容器,它可以使用 ‘up’ 命令再次启动。

docker-compose logs

使用 (-d) 标志以分离模式启动容器后,我们可以使用带有 docker-compose 的“logs”命令检查日志。

docker-compose -d –scale kibana = 3

scale 命令将特定组件缩放到提供的任何数字,在这种情况下,我们将其缩放到 3。

可视化撰写

正如我在介绍部分提到的,在经典的微服务用例中,微服务通信所需的服务、应用程序、组件(Kafka、DB、队列)可能有很多。有时,对于这么多组件,如果我们在一个 compose 文件中创建所有组件,我们可能会给自己造成混乱,在我看来,识别 .yml 文件中的问题并不容易。

应该使用开源实用程序来可视化称为“docker-compose-viz”的组合

要设置该实用程序,请执行:“sudo apt-get install graphviz”

生成 .png 使用,

docker run -u root –rm -it –name dcv -v $(pwd):/input pmsipilot/docker-compose-viz render -m image docker-compose.yml

该命令生成一个 .png 文件,该文件应该用于调试或识别特定组合文件处理的所有组件。

我们应用程序的 .png 是,

了解 Docker Compose

概括

正如文章中提到的,docker-compose 几次为我们的应用程序简化了整个容器化过程,特别是当我们在分布式架构中工作时。在下一篇文章中,我们将详细探讨 docker-compose.yml 文件。


慕源网 » 了解 Docker Compose

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录