Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它允许用户通过一个 YAML 文件来配置应用程序的服务。这样,用户可以很容易地用一个命令启动、停止和重建所有服务。Docker Compose 适用于开发、测试和在生产环境中部署容器化应用程序。
以下是 Docker Compose 的一些关键特性:
基本概念
- 服务(Services):一个服务代表应用中的一个容器,比如一个数据库服务或一个 web 服务器。
- 项目(Projects):一组服务组成一个项目,通常对应一个应用。在 Docker Compose 中,一个项目由一个
docker-compose.yml
文件定义。
YAML 配置文件
Docker Compose 使用一个名为 docker-compose.yml
的 YAML 文件来配置应用程序的服务。下面是一个简单的配置文件示例:
yaml
version: ‘3’
services:
web:
image: nginx
ports:
- “8080:80”
db:
image: postgres
environment:
POSTGRES_PASSWORD: example
在这个例子中,定义了两个服务:web
和 db
。web
服务使用 nginx
镜像,并将容器的 80 端口映射到主机的 8080 端口。db
服务使用 postgres
镜像,并设置了一个环境变量 POSTGRES_PASSWORD
。
常用命令
docker-compose up
:启动所有定义的服务。加-d
参数可以在后台运行服务。docker-compose down
:停止并删除所有容器、网络、卷和镜像。docker-compose start
:启动已经创建的服务容器。docker-compose stop
:停止运行的服务容器。docker-compose build
:构建或重新构建服务。docker-compose logs
:查看服务的日志输出。docker-compose ps
:列出所有容器。
使用场景
- 开发环境:开发者可以快速搭建包含多个服务的开发环境。
- 测试环境:可以轻松复制开发环境到测试环境,确保一致性。
- 单机部署:在生产环境中,如果不需要 Kubernetes 那样的复杂编排,Docker Compose 可以用于部署小型到中等规模的应用。
安装
Docker Compose 通常与 Docker 一起安装,可以通过以下命令安装:
bash
sudo apt-get install docker-compose # 对于基于 Debian 的系统
sudo yum install docker-compose # 对于基于 RedHat 的系统
或者,可以直接从 GitHub 下载 Docker Compose 的二进制文件:
bash
sudo curl -L “https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-
(
u
n
a
m
e
−
s
)
−
(uname -s)-
(uname−s)−(uname -m)” -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
替换 v2.2.2
为最新版本的 Docker Compose。
Docker Compose 是一个非常有用的工具,它简化了多容器应用程序的配置和部署过程,使得容器化应用程序的管理变得更加容易。