Zhonghui

每个不曾起舞的日子,都是对生命的辜负

User Tools

Site Tools


软件:docker:什么是docker_compose

什么是Docker Compose

docker compose是同时启动多个容器吗?基本上是的,提供一个基础的容器编排功能,但是更复杂的容器编排还是使用K8s更好。由同一个docker compose启动的容器,属于同一个Docker网络。


AI介绍

Docker Compose 是 Docker 官方提供的一个工具,用于定义和运行多个容器组成的应用。它通过一个 YAML 文件(通常命名为 docker-compose.yml)来配置应用的服务、网络、卷等资源,然后使用一条命令就能一键启动、停止或管理整个应用栈。

用一句话解释:

Docker Compose 是一个“容器编排工具”,可以让你一次性启动多个协作运行的容器。

为什么需要 Docker Compose?

在现实项目中,一个应用往往由多个组件组成,比如:

  • Web 应用(Node.js、Django、Flask 等)
  • 数据库(MySQL、PostgreSQL)
  • 缓存(Redis、Memcached)
  • 消息队列(RabbitMQ、Kafka)

用纯 Docker 命令管理多个容器非常繁琐。 Compose 提供了更清晰、模块化和可重复的方式去描述和运行这些服务。

Docker Compose 的基本结构(YAML 配置)

version: '3'
services:
  web:
    build: .
    ports:
      - "8000:8000"
    depends_on:
      - db
  db:
    image: postgres:14
    volumes:
      - db_data:/var/lib/postgresql/data

volumes:
  db_data:

这个例子做了什么?

  • 启动两个服务:web(比如 Django app)和 db(PostgreSQL)
  • web 依赖 db
  • 自动管理数据卷,持久化数据库数据

常用命令

命令 作用
docker-compose up 启动所有服务(加 -d 为后台运行)
docker-compose down 停止并删除所有服务和网络
docker-compose build 构建镜像
docker-compose logs 查看日志
docker-compose exec web bash 进入某个服务容器内部

Compose 的优势

一键部署多个容器 清晰描述依赖关系 支持环境变量、数据卷、端口映射、健康检查等配置 易于版本控制(YAML 文件可进 Git) 适合本地开发、测试、CI/CD 等场景

/var/www/DokuWikiStick/dokuwiki/data/pages/软件/docker/什么是docker_compose.txt · Last modified: 2025/08/09 17:13 by zhonghui