崇左市葬花殡葬网

Docker Compose 两种安装与使用方案

2026-04-09 20:10:05 浏览次数:0
详细信息

方案一:独立安装 Docker Compose(推荐)

安装方法

Linux 系统安装:

# 1. 下载最新版本(请查看官网获取最新版本号)
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 2. 添加执行权限
sudo chmod +x /usr/local/bin/docker-compose

# 3. 验证安装
docker-compose --version

macOS 安装(通过 Homebrew):

brew install docker-compose

Windows 安装(Docker Desktop 自带):

优势

版本控制灵活:可自由选择特定版本 独立更新:Compose 可单独升级,不影响 Docker 本身 轻量级:二进制文件体积小

方案二:作为 Docker CLI 插件安装(新版推荐)

Docker Compose V2 已改为 Docker CLI 插件形式。

安装方法

Linux 系统:

# 1. 创建插件目录
mkdir -p ~/.docker/cli-plugins

# 2. 下载插件
curl -SL "https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64" -o ~/.docker/cli-plugins/docker-compose

# 3. 添加执行权限
chmod +x ~/.docker/cli-plugins/docker-compose

# 4. 验证安装(注意命令变化)
docker compose version

通过 Docker 官方仓库安装:

# Ubuntu/Debian
sudo apt-get update
sudo apt-get install docker-compose-plugin

# CentOS/RHEL
sudo yum install docker-compose-plugin

优势

官方推荐:Docker 官方维护的安装方式 命令集成:使用 docker compose 而非独立的 docker-compose 自动更新:可通过包管理器更新 更好的兼容性:与 Docker CLI 深度集成

基本使用教程

1. 编写 docker-compose.yml

创建示例配置文件:

version: '3.8'  # Compose 文件版本

services:
  # Web 服务
  web:
    image: nginx:latest
    container_name: my-web
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
    depends_on:
      - db
    networks:
      - app-network

  # 数据库服务
  db:
    image: postgres:13
    container_name: my-db
    environment:
      POSTGRES_PASSWORD: example
      POSTGRES_DB: myapp
    volumes:
      - postgres-data:/var/lib/postgresql/data
    networks:
      - app-network

  # Redis 缓存
  redis:
    image: redis:alpine
    container_name: my-redis
    networks:
      - app-network

# 网络配置
networks:
  app-network:
    driver: bridge

# 卷配置
volumes:
  postgres-data:

2. 常用命令

# 启动所有服务(后台运行)
docker-compose up -d      # V1 方式
docker compose up -d      # V2 插件方式

# 查看运行状态
docker-compose ps
docker compose ps

# 查看日志
docker-compose logs       # 所有服务
docker-compose logs web   # 特定服务
docker-compose logs -f    # 实时跟踪

# 停止服务
docker-compose stop

# 停止并删除容器、网络
docker-compose down

# 停止并删除容器、网络、卷(数据也会删除)
docker-compose down -v

# 重启服务
docker-compose restart

# 构建/重新构建服务
docker-compose build

# 执行命令到特定容器
docker-compose exec web bash
docker-compose exec db psql -U postgres

# 查看服务依赖关系
docker-compose config

# 扩展服务实例数量
docker-compose up --scale web=3 -d

3. 环境变量配置

创建 .env 文件:

DB_PASSWORD=mysecretpassword
WEB_PORT=8080

在 docker-compose.yml 中使用:

version: '3.8'
services:
  db:
    image: postgres
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
  web:
    image: nginx
    ports:
      - "${WEB_PORT}:80"

4. 多环境配置

docker-compose.yml(基础配置):

services:
  app:
    image: myapp:${TAG:-latest}
    environment:
      - NODE_ENV=${NODE_ENV:-development}

docker-compose.override.yml(开发环境):

services:
  app:
    build: .
    ports:
      - "3000:3000"
    volumes:
      - ./src:/app/src

docker-compose.prod.yml(生产环境):

services:
  app:
    restart: always
    ports:
      - "80:3000"

使用方式:

# 开发环境(自动合并基础配置和override)
docker-compose up

# 生产环境
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up

版本迁移建议

从 V1 迁移到 V2

# 1. 卸载旧版本
sudo rm /usr/local/bin/docker-compose

# 2. 安装新版本(插件方式)
curl -SL "https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64" -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose

# 3. 更新命令使用方式
# 旧:docker-compose up
# 新:docker compose up

最佳实践建议

版本选择

文件组织

project/
├── docker-compose.yml
├── docker-compose.prod.yml
├── docker-compose.dev.yml
├── .env
├── nginx/
└── app/

性能优化

# 使用 buildx 进行多阶段构建
DOCKER_BUILDKIT=1 docker-compose build

# 并行启动服务
docker-compose up --parallel

健康检查配置

services:
  web:
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost/health"]
      interval: 30s
      timeout: 10s
      retries: 3

两种方案都能满足日常开发需求,推荐新用户直接采用 方案二(插件方式),这是 Docker 官方的发展方向。

相关推荐