Comment on page
Compose 概览
Compose 是一个用于定义和运行多容器 Docker 应用的工具。通过 Compose,你使用一个 YAML 文件来配置你的应用的服务。然后,通过一个命令,从你的配置中创建和启动所有的服务。为了学习更多 Compose 所有的特性,可以查看 特性列表。
使用 Compose 基本三步走:
- 1、通过
Dockerfile
定义你的应用环境,以便在任何场景复用 - 2、在
docker-compose.yml
中定义组成应用程序的服务,以便他们能在隔离的环境中一同运行 - 3、运行
docker-compose up
,Compose 启动和运行你整个应用
一个
docker-compose.yml
看起来像这样:version: '2.0'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
- logvolume01:/var/log
links:
- redis
redis:
image: redis
volumes:
logvolume01: {}
Compose 有一系列命令管理应用的整个生命周期:
- 启动,停止和重建服务
- 查看运行服务的状态
- 查看服务的日志输出
- 在服务上运行一次性命令
Compose 的这些特性让它更高效:
Compose 通过一个项目名来隔离隔离环境。你可以在若干不同的上下文中使用这个项目名:
- 在一个开发机上,创建单个环境的多个副本,例如当你想针对一个项目每个功能分支各运行一个稳定的副本
- 在一个 CI 服务器上,为了防止内部版本相互干扰,可以将项目名设置为唯一的版本号
- 在共享主机或者开发机上,以防止可能使用相同服务名称的不同项目相互干扰
默认的项目名是项目目录名。你可以通过
-p
命令选项或者 COMPOSE_PROJECT_NAME
环境变量自定义项目名。Compose 保留服务用到的所有卷。当
docker-compose up
运行时,如果发现任何之前已经运行的容器,它会从旧的容器复制数据到新的容器。这一操作确保你在卷中创建的任何数据都不会丢失。如果你在 Windows 机器上使用 docker-compose
,查看 环境变量 并根据特定需求调整环境变量。Compose 缓存用于创建容器的配置。当你重启一个没有任何变更的服务时,Compose 会重新使用现有的 容器。重复使用容器意味着你可以快速更改环境。
Compose 可以用在不同的方式中。下面概述了一些常用的案例。
当你开发一个软件时,隔离环境运行应用和交互是至关重要的。Compose 命令行工具可用于创建环境并与之交互。
Compose 文件 提供了文档化和配置应用所有服务依赖项(数据库,队列,缓存,Web 服务 APIs 等等)的一种方法。使用 Compose 命令行工具,你可以使用单个命令(
docker-compose up
)为每个依赖创建和启动一个或多个容器。这些功能为开发者提供了一种方便的方法来开始一个项目。Compose 可以将多页的 “开发者入门指南” 简化为单个机器可读的 Compose 文件和一些命令。
自动化测试套件是任何持续部署或者持续集成过程的重要组成部分。自动化端到端的测试需要一个环境来运行测试。Compose 提供了快捷的方式为测试套件创建和销毁隔离的测试环境。
$ docker-compose up -d
$ ./run_tests
$ docker-compose down
Compose 一直专注于开发和测试工作流,但是每个版本都会在面向生产上有一些进展并提供了相应的功能。你可以使用 Compose 部署到远程 Docker Engine。Docker Engine 可以是配备 Docker Machine 的单个实例或者整个 Docker Swarm 集群。
Docker Compose 还在积极开发中。如果你需要帮助,想做出一些贡献,或者只是想和志趣相投的人谈论该项目,我们有许多开放的沟通渠道。
- 需要实时讨论该项目:Slack 加入
#docker-compose
频道
最近更新 3yr ago