docker compose是同时启动多个容器吗?基本上是的,提供一个基础的容器编排功能,但是更复杂的容器编排还是使用K8s更好。由同一个docker compose启动的容器,属于同一个Docker网络。
Docker Compose 是 Docker 官方提供的一个工具,用于定义和运行多个容器组成的应用。它通过一个 YAML 文件(通常命名为 docker-compose.yml)来配置应用的服务、网络、卷等资源,然后使用一条命令就能一键启动、停止或管理整个应用栈。
Docker Compose 是一个“容器编排工具”,可以让你一次性启动多个协作运行的容器。
在现实项目中,一个应用往往由多个组件组成,比如:
用纯 Docker 命令管理多个容器非常繁琐。 Compose 提供了更清晰、模块化和可重复的方式去描述和运行这些服务。
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 | 进入某个服务容器内部 |
一键部署多个容器 清晰描述依赖关系 支持环境变量、数据卷、端口映射、健康检查等配置 易于版本控制(YAML 文件可进 Git) 适合本地开发、测试、CI/CD 等场景