Docker Compose 入门:用一条命令编排多容器应用

举报
yd_286077367 发表于 2026/11/04 10:31:18 2026/11/04
【摘要】 在日常开发中,很多应用不止一个容器:后端服务、数据库、缓存、消息队列常常要一起跑。一个一个敲 docker run 既繁琐又容易出错,Docker Compose 就是为此设计的编排工具——用一份 YAML 文件声明所有服务,再用一条命令把它们全部拉起。 什么是 Docker ComposeCompose 通过 docker-compose.yml 描述应用的完整栈。每个 service 就...

在日常开发中,很多应用不止一个容器:后端服务、数据库、缓存、消息队列常常要一起跑。一个一个敲 docker run 既繁琐又容易出错,Docker Compose 就是为此设计的编排工具——用一份 YAML 文件声明所有服务,再用一条命令把它们全部拉起。

什么是 Docker Compose

Compose 通过 docker-compose.yml 描述应用的完整栈。每个 service 就是一个容器,你可以声明镜像、端口映射、环境变量、数据卷以及服务之间的依赖关系。Compose 会为项目自动创建一张网络,服务之间直接用服务名互访,不需要记住 IP。

最小示例:Web + Redis

在项目根目录创建 docker-compose.yml:

version: "3.8"

services:
  web:
    image: nginx:alpine
    ports:
      - "8080:80"
    depends_on:
      - redis

  redis:
    image: redis:7-alpine
    volumes:
      - redis-data:/data

volumes:
  redis-data:

运行以下命令即可一键启动整栈:

docker compose up -d

Compose 会先拉起 redis(因为 web 声明了 depends_on),再启动 web,并将 8080 端口映射到宿主机。浏览器访问 localhost:8080 就能看到 Nginx 欢迎页。

用 docker compose ps 可查看各服务状态,docker compose logs -f web 可实时查看指定服务的日志,docker compose down 则停止并清理容器和网络。

常用概念速览

  • service:一个容器的运行配置,通常对应一个微服务或组件。
  • image / build:直接使用现成镜像,或从 Dockerfile 构建。
  • ports:宿主机到容器的端口映射,格式为 “主机端口:容器端口”。
  • environment:注入环境变量,支持直接列出或用 env_file 读取 .env 文件。
  • volumes:把目录或命名卷挂载进容器,常用于持久化数据库数据。
  • depends_on:声明启动顺序的软依赖,实际是否可用还需服务自身就绪。

实战建议

开发环境可以把数据库、缓存、消息队列都写进一份 compose 文件,团队新人 clone 仓库后一条命令就跑起全部依赖。记得把 .env 和敏感的 compose 配置加入 .gitignore,不要把密钥提交到仓库。需要时还可以通过 docker compose --profile dev up 来按环境加载不同配置。

掌握 Compose 后,本地多容器应用的交付和协作会顺畅很多。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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