教程 docker tutorial

Compose 入门(docker-compose.yml)

Docker Compose 是用于定义和管理多容器 Docker 应用的工具,通过 docker-compose.yml 文件描述服务、网络和卷。

1. Docker Compose 基本概念

  • 服务(Service):容器的抽象,可以定义镜像、命令、端口、卷等
  • 网络(Network):服务间通信网络
  • 卷(Volume):持久化存储
  • 环境变量(Environment Variables):配置服务行为

2. docker-compose.yml 基本结构

yaml
version: "3.9"

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html:ro
    networks:
      - mynet

  db:
    image: mysql:8
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: mydb
    volumes:
      - db_data:/var/lib/mysql
    networks:
      - mynet

networks:
  mynet:

volumes:
  db_data:

`

3. 常用指令

  • 启动服务:
bash
docker-compose up -d
  • 停止服务:
bash
docker-compose down
  • 查看服务日志:
bash
docker-compose logs -f
  • 构建或重建服务:
bash
docker-compose build

4. 多容器依赖管理

  • Compose 会按照 depends_on 定义启动顺序:
yaml
services:
  web:
    image: myweb
    depends_on:
      - db

5. 环境变量与配置管理

  • 使用 .env 文件定义环境变量:
txt
MYSQL_ROOT_PASSWORD=rootpassword
MYSQL_DATABASE=mydb
  • Compose 文件中引用:
yaml
environment:
  MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
  MYSQL_DATABASE: ${MYSQL_DATABASE}

掌握 Docker Compose 和 docker-compose.yml 配置,可以轻松管理多容器应用,实现服务快速启动、依赖管理和数据持久化。