📦 Docker Compose
以 YAML 定義與管理多容器應用
Docker Compose 讓你用一個 YAML 檔定義應用的所有服務(資料庫、後端、前端),一條指令啟動整個開發環境,告別手動串接容器的麻煩。
安裝
$ sudo apt install -y docker-compose-plugin # Docker 官方外掛(v2)
docker compose versioncompose.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 |
| 停止並清除資料 Volume | docker compose down -v |
| 查看服務狀態 | docker compose ps |
| 查看日誌 | docker compose logs -f nginx |
| 進入服務 Shell | docker compose exec php bash |
| 重建映像檔 | docker compose build --no-cache |
| 更新並重啟服務 | docker compose up -d --pull always |