Docker Compose 是一个用于定义和管理多容器 Docker 应用程序的工具。通过编写一个 docker-compose.yml
文件,可以配置应用程序的所有服务、网络和卷,使得多容器应用程序的部署和管理变得简单。以下是 Docker Compose 的一些主要功能和用法:
docker-compose.yml编写规则:
docker-compose.yml-CSDN博客
-
定义服务: 在
docker-compose.yml
文件中,可以定义应用程序所需的多个服务。每个服务都可以指定不同的镜像、环境变量、卷挂载等。 -
配置网络: Docker Compose 允许配置多个服务之间的网络,以便它们可以相互通信。
-
数据卷: 通过指定数据卷,可以在容器之间共享数据或将数据持久化到主机上。
-
简化管理: 使用
docker-compose
命令,您可以轻松地启动、停止、重新构建和查看容器的状态。例如,使用docker-compose up
启动所有服务,使用docker-compose down
停止并删除服务。 -
服务扩展: 可以使用
docker-compose
的缩放功能来扩展服务的副本数量,以便处理更多的流量或负载。 -
多环境配置: Docker Compose 支持使用多个 Compose 文件(例如
docker-compose.override.yml
)来管理不同的环境配置,如开发、测试和生产环境。
Docker Compose 常用命令的总结
命令 | 描述 | 选项 | 示例 |
---|---|---|---|
up | 启动并运行服务 | -d:后台运行 –build:重新构建镜像 –force-recreate:强制重新创建容器 –no-deps:不启动依赖服务 | docker compose up docker compose up -d docker compose up --build docker compose up --force-recreate docker compose up --no-deps |
down | 停止并删除服务 | -v:同时删除数据卷 –rmi type:删除镜像(all、local) –remove-orphans:删除未定义的容器 | docker compose down docker compose down -v docker compose down --rmi all docker compose down --remove-orphans |
start | 启动已存在的容器 | 无 | docker compose start |
stop | 停止运行中的容器 | -t TIMEOUT:指定停止前等待的时间(秒) | docker compose stop docker compose stop -t 30 |
restart | 重启服务 | -t TIMEOUT:指定重启前等待的时间(秒) | docker compose restart docker compose restart -t 30 |
build | 构建或重建服务的镜像 | –no-cache:不使用缓存 -f FILE:指定 Compose 文件路径 –build-arg key=val:设置构建时的变量 | docker compose build docker compose build --no-cache docker compose build -f custom-compose.yml |
logs | 查看服务的日志输出 | -f:实时跟踪 –tail NUMBER:显示最新的日志行数 | docker compose logs docker compose logs -f docker compose logs --tail=100 |
exec | 在运行中的容器中执行命令 | -d:分离模式,后台运行 -it:以交互模式运行 |
|
run | 启动新容器并执行命令 | -d:后台运行容器 –name NAME:指定容器名称 –rm:命令完成后自动删除容器 | docker compose run service_name command docker compose run -d service_name command docker compose run --name mycontainer service_name bash docker compose run --rm service_name bash |
ps | 列出当前运行的容器 | 无 | docker compose ps |
config | 检查和验证配置文件 | -f FILE:指定 Compose 文件路径 –services:列出服务名称 –volumes:列出卷名称 | docker compose config docker compose config --services docker compose config --volumes |
pull | 从仓库拉取服务的镜像 | 无 | docker compose pull |
push | 推送服务依赖的镜像到仓库 | 无 | docker compose push |
kill | 杀死运行中的容器 | -s SIGNAL:发送信号到容器,默认为 SIGKILL | docker compose kill docker compose kill -s SIGTERM |
pause | 暂停一个或多个服务 | 无 | docker compose pause |
unpause | 恢复一个或多个服务的所有暂停容器 | 无 | docker compose unpause |
top | 显示运行中的进程信息 | 无 | docker compose top |
version | 显示 Docker Compose 版本信息 | 无 | docker compose version |