Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。通过一个 YAML 文件(docker-compose.yml),您可以配置应用程序的所有服务,然后使用单个命令创建和启动所有服务。
主要功能:
典型应用场景:
对于单机多容器应用编排,推荐通过官方渠道安装 Docker Compose,使用 docker-compose.yml 配置文件管理服务,适合开发、测试及中小型生产环境。
先说结论:Docker Compose 是 Docker 官方提供的多容器编排工具,通过 YAML 文件定义服务,一条命令即可启动完整应用栈。
安装后常用命令如下,可直接在终端执行:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# 查看版本确认安装成功 docker-compose `--version` # 启动所有服务(前台) docker-compose up # 启动所有服务(后台) docker-compose up -d # 停止并删除容器、网络、卷 docker-compose down # 查看运行中的容器 docker-compose ps # 查看服务日志 docker-compose logs <service> # 进入容器执行命令 docker-compose exec <service> <command> # 重新构建镜像 docker-compose build # 重启服务 docker-compose restart |
Docker Compose 解决的核心问题是:当应用由多个容器组成时,手动执行多条 docker run 命令容易出错且难以维护。通过 docker-compose.yml 文件,你可以将服务定义、网络配置、卷挂载等信息集中管理,使用单个命令完成整个应用栈的启动。
Compose 管理三个层级内容:工程(运行目录)、服务(子项目)、容器(服务实例)。但需要注意,它只能在单一主机上进行编排,跨节点编排需要使用 Docker Swarm 或 Kubernetes。
有两种主流安装方式,任选其一即可:
方式一:作为 Docker 插件安装(推荐)
|
1 2 3 4 |
# CentOS/RedHat 系统 yum install -y docker-compose-plugin # 验证安装 docker compose version |
安装后使用 docker compose 命令(无连字符)。
方式二:独立二进制安装
|
1 2 3 4 5 6 |
# 下载安装包(版本号需替换为实际版本) sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose # 添加执行权限 sudo chmod +x /usr/local/bin/docker-compose # 验证安装 docker-compose `--version` |
安装后使用 docker-compose 命令(有连字符)。
在项目根目录创建配置文件,基本结构如下:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
version: "3.9" services: web: build: . ports: - "8080:8080" volumes: - .:/code db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: password |
常用字段说明:build 指定 Dockerfile 路径,image 指定镜像,ports 暴露端口,volumes 挂载卷,environment 设置环境变量,depends_on 定义服务依赖。
|
1 2 3 4 5 6 |
# 进入配置文件所在目录 cd /path/to/your/project # 启动所有服务 docker-compose up -d # 查看服务状态 docker-compose ps |
完成安装和配置后,按以下步骤验证: