【docker】docker compose 容器编排

发布于:2024-09-18 ⋅ 阅读:(13) ⋅ 点赞:(0)

什么是 Docker Compose

docker-compose 是 Docker 官方的开源项目,使用 python 编写,实现上调用了Docker 服务的 API 进行容器管理及编排,其官方定义为定义和运行多个 Docker 容器的应用。

docker-compose 中有两个非常重要的概念:

  • 服务 ( service ):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。
  • 项目( project ):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义, 整个 docker-compose.yml 定义一个项目。

Compose 的默认管理对象是项目,通过子命令对项目中的一组容器进行便捷地生命周期管理。

通过 compose 可以方便的管理多个服务。

在这里插入图片描述

生活案例

docker compose 就像航母一样,有舰载机、防空导弹,舰载机、导弹呢就是一个个容器。

在这里插入图片描述

为什么要 Docker Compose

  • Docker 是一个轻量化的应用程序,Docker 官方推荐每个 Docker 容器中只运行一个进程。
  • 如果一个应用需要涉及到 MySQL、nginx 等环境, 那么我们需要分别为应用、数据库和 nginx 创建单独的 docker 容器,然后分别启动容器。
  • 想象一下,当我们构建好 Docker 之后,每次启动应用,都至少需要 docker run三次, 或者写一些脚本来实现, 这样会比较繁琐。
  • 另外,这些 docker 容器都是分散独立的,也不方便镜像管理。那既然这些 docker容器 都是为了同一个应用服务,我们就应该把它们放到一起,这就引出了 docker-compose 来解决这类型的问题。

Docker Compose 的功能

  1. 使用步骤
    Compose使用的步骤:
  • 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
  • 最后,执行 docker compose up 命令来启动并运行整个应用程序。
  1. 核心功能

Compose 具有管理应用程序整个生命周期的命令:

  • 启动,停止和重建服务
  • 查看正在运行的服务的状态
  • 流式传输运行服务的日志输出
  • 在服务上运行一次性命令

Docker Compose 使用场景

单主机部署: 快速搭建一个单节点开发或者测试环境,方便使用。

不同环境隔离:通过指定 project 来运行不同的环境,实现隔离的目的。