📦 Docker Compose

以 YAML 定義與管理多容器應用

Docker Compose 讓你用一個 YAML 檔定義應用的所有服務(資料庫、後端、前端),一條指令啟動整個開發環境,告別手動串接容器的麻煩。

安裝

$ sudo apt install -y docker-compose-plugin  # Docker 官方外掛(v2)
docker compose version

compose.yml 範例(Nginx + PHP + MySQL)

services:
  nginx:
    image: nginx:1.26-alpine
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
      - ./html:/var/www/html:ro
    depends_on:
      - php

  php:
    image: php:8.3-fpm-alpine
    volumes:
      - ./html:/var/www/html
    environment:
      DB_HOST: db
      DB_NAME: myapp

  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: myapp
    volumes:
      - mysql-data:/var/lib/mysql

volumes:
  mysql-data:

常用指令

操作指令
啟動所有服務(背景)docker compose up -d
停止所有服務docker compose down
停止並清除資料 Volumedocker compose down -v
查看服務狀態docker compose ps
查看日誌docker compose logs -f nginx
進入服務 Shelldocker compose exec php bash
重建映像檔docker compose build --no-cache
更新並重啟服務docker compose up -d --pull always