Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。通过一个简单的 YAML 文件,用户可以配置应用的服务、网络和卷等内容,从而使得多容器的管理和部署变得更加简便和高效。本文将带你全面了解 Docker Compose,包括其基础概念、编写 docker-compose.yml
文件、使用 Docker Compose 部署多容器应用,并介绍一些 Docker Compose 的高级用法。
什么是 Docker Compose
Docker Compose 允许你使用一个配置文件来定义多个 Docker 容器的服务。这样,用户可以一次性启动、停止和管理整个应用的多个容器,而不需要手动执行多个 Docker 命令。
核心概念
- 服务(Service):一个或多个容器的实例,运行同一应用的不同副本。
- 网络(Network):服务之间的通信通道。
- 卷(Volume):持久化数据的存储方式,保证数据在容器重启或删除后仍然存在。
- 配置文件(docker-compose.yml):使用 YAML 格式定义服务、网络和卷等配置的文件。
编写 docker-compose.yml
文件
docker-compose.yml
文件是 Docker Compose 的核心配置文件,定义了应用的各个服务、网络和卷。下面我们通过一个简单的例子来了解如何编写这个文件。
示例结构
假设我们要部署一个简单的多容器应用,包含一个 Web 服务和一个数据库服务。我们的应用将使用 Flask 和 PostgreSQL。以下是 docker-compose.yml
的示例内容:
version: '3.8' # 指定Compose文件的版本
services:
web:
image: python:3.8-slim
container_name: web_app
ports:
- "5000:5000"
volumes:
- ./app:/app
working_dir: /app
command: python3 app.py
depends_on:
- db
environment:
- FLASK_APP=app.py
- FLASK_ENV=development
db:
image: postgres:13
container_name: postgres_db
environment