Docker Compose 是一个工具,用于定义和运行多容器 Docker 应用程序。使用 Compose,您可以使用 YAML 文件来配置应用程序的服务。然后,使用一个命令,您可以创建并启动配置中的所有服务。
安装 Docker Compose
在安装 Docker Compose 之前,请确保已经安装了 Docker。Docker Compose 的安装方法取决于您的操作系统:
在 Linux 上安装 Docker Compose
下载最新版本的 Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
赋予可执行权限:
sudo chmod +x /usr/local/bin/docker-compose
验证安装是否成功:
docker-compose --version
在 macOS 和 Windows 上安装 Docker Compose
如果您已经安装了 Docker Desktop,则无需单独安装 Docker Compose。Docker Desktop 已经包含了它。
Docker Compose 文件
Docker Compose 使用 YAML 文件来配置应用程序的服务。这个文件默认名为 docker-compose.yml,但也可以是其他名称,只要在运行 Docker Compose 命令时指定文件名即可。
文件结构
Docker Compose 文件的基本结构如下所示:
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"version 字段
version 字段表示 Docker Compose 文件的版本。版本号越高,支持的功能越多。
services 字段
services 字段定义了应用程序使用的各个服务。每个服务都可以有自己的配置项,如镜像、端口映射、环境变量等。
示例:一个简单的 Web 应用
下面是一个简单的示例,展示了一个包含 Web 应用和 Redis 数据库的服务配置:
// www.javascriptcn.com code example
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
depends_on:
- redis
redis:
image: "redis:alpine"web 服务
build: 指定构建上下文的路径。ports: 映射主机的端口到容器的端口。volumes: 将主机上的目录挂载到容器中。depends_on: 指定服务的依赖关系,这里web服务依赖于redis服务。
redis 服务
image: 指定要使用的镜像。
更多配置选项
除了上述示例中提到的配置项外,Docker Compose 文件还支持许多其他配置选项,例如环境变量、网络、卷等。这些配置项可以帮助您更灵活地管理应用程序的服务。
环境变量
您可以通过 environment 或 env_file 字段来设置环境变量:
environment: - DEBUG=false - DATABASE_URL=postgres://user:password@host/dbname
或者通过 env_file 来引用外部的环境变量文件:
env_file: - .env
网络
您可以使用 networks 字段来定义和连接网络:
// www.javascriptcn.com code example
networks:
frontend:
backend:
services:
web:
networks:
- frontend
- backend
db:
networks:
- backend卷
您可以使用 volumes 字段来将数据持久化到宿主机上:
// www.javascriptcn.com code example
volumes:
data:
driver: local
services:
db:
image: postgres
volumes:
- data:/var/lib/postgresql/data启动和停止服务
启动服务
使用以下命令启动配置中的所有服务:
docker-compose up
如果希望以后台模式运行服务,可以添加 -d 参数:
docker-compose up -d
停止服务
使用以下命令停止并删除正在运行的服务:
docker-compose down
查看服务状态
要查看服务的状态,可以使用以下命令:
docker-compose ps
其他常用命令
除了上述基本命令外,Docker Compose 还提供了一些其他有用的命令,如重新构建服务、重启服务等:
重新构建服务:
docker-compose up --build
重启服务:
docker-compose restart
查看日志:
docker-compose logs
查看特定服务的日志:
docker-compose logs web
通过这些命令和配置选项,您可以轻松地管理和部署多容器的 Docker 应用程序。