Docker Compose 入门:用一个 YAML 文件管理多容器应用

举报
yd_253037369 发表于 2026/10/22 22:43:00 2026/10/22
【摘要】 介绍 Docker Compose 的作用,用 web+redis 示例演示 compose.yml 写法,并讲解 up/ps/logs/down 命令与实用技巧。

一、Compose 是什么

在实际开发中,一个应用往往由多个容器组成,例如 Web 服务加 Redis 缓存。如果每个容器都手写 docker run 命令,参数又长又容易出错。Docker Compose 是 Docker 官方提供的多容器编排工具,只需要一个 YAML 文件,就能描述所有服务、网络和数据卷,并用一条命令完成启动与销毁。

二、示例:web + redis

新建 compose.yml,内容如下:

services:

  web:

    image: nginx:alpine

    ports:

      - "8080:80"

    depends_on:

      - redis

  redis:

    image: redis:7-alpine

    volumes:

      - redis-data:/data

volumes:

  redis-data:

这里定义了两个服务:web 使用 nginx 并把容器 80 端口映射到宿主机 8080;redis 使用官方镜像,并通过命名卷持久化数据。同一个 Compose 项目里的服务共用一个默认网络,因此 web 可以直接用服务名 redis 访问缓存。

三、常用命令

docker compose up -d:后台创建并启动所有服务。

docker compose ps:查看各服务的运行状态。

docker compose logs -f web:持续查看 web 服务日志。

docker compose down:停止并删除容器和网络,加 -v 可同时删除数据卷。

四、实用小技巧

1. 用 .env 文件保存端口、镜像版本等变量,在 compose.yml 中以 ${VAR} 引用,方便在不同环境间切换。

2. depends_on 只保证启动顺序,不保证服务已就绪,关键依赖建议配合 healthcheck 使用。

3. 修改配置后执行 docker compose up -d 即可只重建发生变化的服务;数据库类服务务必挂载数据卷,避免 down 之后数据丢失。

掌握以上内容,就可以用一个文件把本地开发环境一键拉起,大幅减少环境配置的重复劳动。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。