Docker-compose overview
文章目录
1. 简介
docker-ompose 是一个用于定义和运行多容器 Docker 应用程序的工具。使用 docker-compose,您可以使用 YAML 文件来配置应用程序的服务。然后,使用一个命令,您可以从您的配置中创建并启动所有服务。
docker-compose 适用于所有环境:生产、登台、开发、测试以及 CI 工作流程。
2. 使用步骤
用 docker-compose 基本上是一个三步过程:
使用 a 定义您的应用程序的环境,Dockerfile以便可以在任何地方复制它。
定义构成您的应用程序的服务,docker-compose.yml 以便它们可以在隔离环境中一起运行。
运行docker compose up,Docker compose 命令启动并运行您的整个应用程序。您也可以docker-compose up使用 docker-compose 二进制文件运行。
docker-compose.yml
version: "3.9" # optional since v1.27.0 services: web: build: . ports: - "8000:5000" volumes: - .:/code - logvolume01:/var/log links: - redis redis: image: redis volumes: logvolume01: {}
3. 生命周期
docker-compose 具有用于管理应用程序整个生命周期的命令:
- 启动、停止和重建服务
- 查看运行服务的状态
- 流式传输正在运行的服务的日志输出
- 在服务上运行一次性命令
4. 特色
docker-compose 使其有效的特点是:
单个主机上的多个隔离环境
docker-compose 使用项目名称将环境彼此隔离。您可以在几个不同的上下文中使用此项目名称:
在开发主机上,创建单个环境的多个副本,例如当您想要为项目的每个功能分支运行稳定副本时
在 CI 服务器上,为了防止构建相互干扰,您可以将项目名称设置为唯一的构建号
在共享主机或开发主机上,以防止可能使用相同服务名称的不同项目相互干扰
默认项目名称是项目目录的基本名称。您可以使用 -p命令行选项或 COMPOSE_PROJECT_NAME环境变量设置自定义项目名称。
默认项目目录是 docker-compose 文件的基本目录。可以使用--project-directory命令行选项定义它的自定义值。
创建容器时保留卷数据
docker-compose 会保留您的服务使用的所有卷。运行时docker-compose up ,如果它找到以前运行的任何容器,它会将卷从旧容器复制到新容器。此过程可确保您在卷中创建的任何数据都不会丢失。
仅重新创建已更改的容器
docker-compose 缓存用于创建容器的配置。当您重新启动未更改的服务时,docker-compose 会重新使用现有容器。重复使用容器意味着您可以非常快速地更改您的环境。
变量和在环境之间移动组合
docker-compose 支持 docker-compose 文件中的变量。您可以使用这些变量为不同的环境或不同的用户定制您的组合。有关详细信息,请参阅变量替换。
extends您可以使用该字段或通过创建多个 docker-compose 文件来扩展docker-compose 文件