Docker Compose - 概述

原文地址

最新版的 Compose 文件的手册 参考这里

Compose 是定义和运行多容器 Docker 应用程序的工具。使用 Compose 时可以通过 YAML 文件来配置应用程序的服务。然后,使用单个命令就可以创建并启动配置中的所有服务。要详细了解 Compose 的所有功能,请参阅下面第一小节 - 特性。

Compose 适用于所有环境:production,staging,development,testing 以及 CI 工作流程。可以参阅下面第二小节 - 常见案例。

使用 Compose 基本上是一个三步过程:

  1. 使用 Dockerfile 定义应用程序的环境,以便随时随地进行复制。
  2. docker-compose.yml 中定义组成应用程序的服务,以便它们可以在隔离的环境中一起运行。
  3. 运行 docker-compose up,Compose 启动并运行整个应用程序。

docker-compose.yml 样式如下:

version: '3'
services:
  web:
    build: .
    ports:
    - "5000:5000"
    volumes:
    - .:/code
    - logvolume01:/var/log
    links:
    - redis
  redis:
    image: redis
volumes:
  logvolume01: {}

更多信息,参考 Compose 文件的手册 参考这里

Compose 包含管理应用程序完整生命周期的命令:

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

1. Compose 文档

2. 特性

2.1 单个主机上的多个隔离环境

Compose 使用项目名称来隔离彼此的环境。可以在多个不同的环境中使用此项目名称:

  • 在开发主机上,创建单个环境的多个副本,例如,为项目的每个功能分支运行稳定副本时
  • 在 CI 服务器上,为防止构建互相干扰,可以将项目名称设置为唯一的构建编号
  • 在共享主机或开发主机上,防止可能使用相同服务名称的不同项目相互干扰

默认项目名称是项目目录的基本名称。可以使用 -p 命令行选项COMPOSE_PROJECT_NAME 环境变量 设置自定义项目名称。

2.2 创建容器时保留卷数据

Compose 会保留服务使用的所有卷。当 docker-compose up 运行时,如果它找到之前运行的任何容器,则它将卷从旧容器复制到新容器。此过程可确保你在卷中创建的任何数据都不会丢失。

如果在 Windows 机器上使用 docker-compose,请参阅 环境变量 并根据你的特定需求调整必要的环境变量。

2.3 只重新创建已更改的容器

Compose 缓存用于创建容器的配置。当你重新启动未更改的服务时,Compose 将再次使用已有的容器。重复利用容器意味着可以快速更改环境。

2.4 变量及在环境之间移动组合(moving a composition between environments)

Compose 支持 Compose 文件中的变量。可以使用这些变量为不同的环境或不同的用户自定义组合。更多详情,请参阅 变量替换

可以使用 extends 字段或通过创建多个 Compose 文件来扩展 Compose 文件。请参阅 extends 了解更多细节。

3. 常见用例

Compose 可以用不同的方式使用。

3.1 开发环境

在开发软件时,在孤立环境中运行应用程序并与其交互的能力至关重要。Compose 命令行工具可用于创建环境并与之交互。

Compose 文件 提供了一种方式来记录和配置所有应用程序的服务依赖关系(数据库,队列,缓存,Web 服务 API 等)。通过 Compose 命令行工具,可以使用单个命令(docker-compose up)为每个依赖项创建和启动一个或多个容器。

总之,这些功能为开发人员开始项目提供了一种便捷方式。Compose 可以将很多页的“开发人员入门指南”减少到一个机器可读的 Compose 文件和一些命令。

3.2 自动测试环境

任何持续部署或持续集成过程的一个重要部分是自动化测试套件。自动化的端到端测试需要一个运行测试的环境。Compose 提供了一种创建和销毁测试套件的独立测试环境的便捷方式。通过在 Compose 文件中定义的完整环境,可以通过几条命令创建和销毁这些环境:

$ docker-compose up -d
$ ./run_tests
$ docker-compose down

3.3 单个主机部署

Compose 在传统上一直专注于开发和测试工作流程,但在每个版本中都会增加更多面向生产的功能。可以使用 Compose 部署到远程 Docker 引擎。Docker 引擎可以是 Docker Machine 或整个 Docker Swarm 集群的单个实例。

有关使用面向生产功能的详细信息,请参阅 生产环境中的 Compose

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然,我可以为您提供有关Docker Compose的教程。Docker Compose是一个用于定义和运行多个Docker容器的工具。它允许您使用一个简单的YAML文件来描述应用程序的服务、网络和卷等配置。 以下是一个基本的Docker Compose教程的步骤: 1. 安装DockerDocker Compose:首先,确保您已经在您的机器上安装了DockerDocker Compose。您可以从官方网站上下载并按照它们的安装指南进行安装。 2. 创建一个新的项目目录:在您的项目目录中创建一个新的文件夹,用于存放Docker Compose文件和相关的应用程序文件。 3. 创建一个docker-compose.yml文件:在项目目录中创建一个名为docker-compose.yml的文件。这个文件将会包含您的应用程序的各个服务的配置信息。 4. 定义服务:在docker-compose.yml文件中,您可以使用services关键字来定义您的各个服务。每个服务都应该有一个唯一的名称,并指定要使用的Docker镜像、端口映射等信息。 5. 定义网络:如果您的应用程序需要多个服务之间进行通信,您可以使用networks关键字来定义网络。这将允许服务之间通过容器名称进行通信。 6. 定义卷:如果您需要在容器之间共享数据或持久化存储,您可以使用volumes关键字来定义卷。 7. 运行应用程序:完成docker-compose.yml文件的编写后,使用docker-compose命令来运行您的应用程序。在项目目录中,运行以下命令:`docker-compose up`。这将会根据您的配置启动所有的服务。 这只是一个简单的教程,帮助您入门Docker Compose。当然,Docker Compose还有许多其他强大的功能和选项,您可以根据自己的需要进行更多的学习和实践。 请注意,这只是一个概述,并不能涵盖Docker Compose的所有细节和用法。我建议您查阅官方文档和其他资源,以获取更详细的信息和示例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值