docker compose怎么用?docker基础用法有哪些?

文章导读
Docker Compose 主要通过一个 YAML 文件来定义和管理多个容器,适合本地开发、测试环境以及小规模生产部署。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 参考来源
A A

Docker Compose 主要通过一个 YAML 文件来定义和管理多个容器,适合本地开发、测试环境以及小规模生产部署。

先说结论:它是管理多容器应用的标准工具,能一键启动整套环境。

  • 适合:开发测试、微服务雏形、单机部署
  • 先看:docker-compose.yml 配置文件结构
  • 建议:先用 up -d 后台运行,再用 logs 排查问题

命令速用版

日常操作主要集中在启动、查看和停止,以下是最高频的几个命令:

# 启动所有服务(后台运行)
docker compose up -d

# 查看容器运行状态
docker compose ps

# 实时查看日志(排查报错必用)
docker compose logs -f

# 停止并删除容器、网络(保留数据卷需加参数)
docker compose down

为什么会这样

很多初学者习惯用docker run一个个启动容器,但一旦应用涉及数据库、缓存和 Web 服务,手动管理端口映射和环境变量非常容易出错。Docker Compose 的核心价值在于“编排”:它把一组相关的容器定义在一个docker-compose.yml文件里,作为一个“项目”来管理。

概念上只需区分两点:一是“服务(Service)”,比如一个 Web 实例或一个数据库;二是“项目(Project)”,由多个服务组成,默认以当前目录名命名。这样你就不用记住每个容器的 ID,直接对项目进行操作即可。

docker compose怎么用?docker基础用法有哪些?

分步处理

1. 准备环境
确保已安装 Docker Engine。Windows 和 macOS 安装 Docker Desktop 后会自动附带 Compose;Linux 系统可能需要单独安装二进制文件。安装完成后,执行docker compose version确认有版本号输出。

2. 编写配置文件
在项目根目录创建docker-compose.yml。一个最小化的 Web 应用配置通常包含服务名、镜像和端口:

services:
  web:
    image: nginx:alpine
    ports:
      - "8080:80"
  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: example

3. 启动服务
在文件所在目录执行docker compose up -d。首次运行会自动拉取镜像,后续则会复用本地镜像。如果需要强制重新构建镜像,可加上`--build`参数。

怎么验证是否生效

执行docker compose ps,查看状态列是否为Up。如果有服务处于ExitRestarting状态,立即使用docker compose logs [服务名]查看报错信息。

docker compose怎么用?docker基础用法有哪些?

对于 Web 服务,直接在浏览器访问配置的端口(如http://localhost:8080),能看到预期页面即表示网络映射正常。数据库服务通常不直接暴露端口给公网,可通过应用容器内的服务名(如db)进行内部连接测试。

常见坑

1. 版本写法混淆
早期版本会在文件第一行写version: '3',但新版 Compose 建议省略该字段,直接定义services,写旧版本格式可能会在某些新环境中被忽略或报错。

2. 数据卷丢失
默认情况下docker compose down不会删除数据卷(Volume),但如果配置不当或手动删除了卷,数据库数据会丢失。持久化数据务必在 yml 中明确定义volumes映射到宿主机路径。

3. 网络不通
同一项目下的服务默认在同一网络内,可以通过服务名互相访问。如果自定义了网络名称,需确保所有需要通信的服务都加入了同一个网络配置。

参考来源

  • Docker Compose 入门级别教学:一键搞定多容器编排基础
  • 【docker】Docker Compose 常规命令命令详解
  • 【Docker 基础】Compose 使用手册:场景、文件与命令详解
  • Docker Compose 的详细使用总结、常用命令及配置示例