
當項目變得越來越復雜 , 一個服務已經無法滿足需求時 , 你可能需要同時部署數據庫、后端服務、前端網頁、緩存組件……這時 , 如果還一個一個手動 docker run , 簡直是災難【\uD83D\uDCCB Docker Compose 編排實戰:一鍵部署多容器應用!】這就是 Docker Compose 登場的時機!
? 一、什么是 Docker Compose?為什么需要它?Docker Compose 是 Docker 官方推出的容器編排工具 , 用于定義和運行多容器應用 。
通過一個 docker-compose.yml 文件 , 就可以用一條命令 docker-compose up , 一次性拉起整個項目中的多個服務 , 像啟動引擎一樣簡單 ??
? 使用 Compose 的優勢:
- 一鍵啟動/停止多個容器
- 配置集中管理 , 結構清晰
- 支持服務依賴順序(如 DB 先啟動)
- 本地開發、測試環境更輕松
- 更適合多人協作部署場景
version: \"3.9\"services:web:image: nginxports:- \"8080:80\"db:image: mysql:5.7environment:MYSQL_ROOT_PASSWORD: 123456volumes:- db_data:/var/lib/mysqlvolumes:db_data: 關鍵結構說明:| 字段 | 含義說明 |
| version | Compose 文件版本 |
| services | 定義多個容器服務 |
| image | 使用的鏡像名 |
| build | 可選 , 使用 Dockerfile 構建鏡像 |
| ports | 主機端口:容器端口映射 |
| volumes | 數據卷掛載 |
| environment | 環境變量設置 |
| depends_on | 指定依賴的服務 , 控制啟動順序 |
services:apache:image: php:7.4-apacheports:- \"8080:80\"volumes:- ./code:/var/www/htmlmysql:image: mysql:5.7environment:MYSQL_ROOT_PASSWORD: root? MEVN(MongoDB + Express + Vue + Node)適用于現代前后端分離開發架構:services:frontend:build: ./frontendports:- \"3000:80\"backend:build: ./backendports:- \"5000:5000\"depends_on:- mongomongo:image: mongoCompose 可以靈活支持不同編程語言與框架組合 , 讓你更輕松實現項目整體容器化!四、實戰:一鍵部署多容器 WordPress + MySQL我們將部署一個最常見的實際案例:WordPress + MySQL 組合 。
? 創建項目結構:
wordpress-docker/├── docker-compose.yml? 編輯docker-compose.yml:version: \"3.9\"services:wordpress:image: wordpressports:- \"8080:80\"environment:WORDPRESS_DB_HOST: db:3306WORDPRESS_DB_USER: rootWORDPRESS_DB_PASSWORD: 123456depends_on:- dbdb:image: mysql:5.7environment:MYSQL_ROOT_PASSWORD: 123456volumes:- db_data:/var/lib/mysqlvolumes:db_data:? 啟動項目:docker-compose up -d打開瀏覽器訪問 http://localhost:8080 , 你將看到熟悉的 WordPress 安裝界面!? 常用 Compose 命令匯總
| 命令 | 作用說明 |
| docker-compose up -d | 后臺啟動所有服務 |
| docker-compose down | 停止并刪除容器和網絡 |
| docker-compose ps | 查看當前服務狀態 |
| docker-compose logs | 查看服務日志 |
| docker-compose exec | 進入容器執行命令 |
| docker-compose restart | 重啟所有服務 |
| 知識點 | 內容說明 |
| Compose 是啥? | 多容器編排工具 , 用于簡化部署和管理 ? |
| 文件結構清晰 | 所有配置集中在一個 yaml 文件 |
| 一鍵部署 | up 和 down 就能快速搭建/清理環境 |
| 支持服務組合 | 如 LAMP、MEVN、WordPress 等多容器應用 |
推薦閱讀
- \uD83C\uDF89Zabbix 7.4正式發布!開源監控再升級,體驗全面提升 \uD83D\uDE80
- Docker 數據持久化最佳實踐:Volume 使用全指南 \uD83D\uDCBE
- Docker 容器的 DNS 是怎么實現的!
- XLibre:Fedora 新的默認 X11 服務器?\uD83D\uDE80
- 標題:Docker 一鍵清盤術,釋放磁盤空間不求人 \uD83E\uDDF9\uD83D\uDC33
- Docker CLI 基礎命令使用指南,零基礎也能秒懂 \uD83D\uDC33
- KDE Plasma 6.4 桌面環境正式發布\uD83D\uDC27
- KDE Plasma 6.3.5 將與 Debian 13 同步亮相\uD83D\uDC27
- \uD83D\uDE80Ubuntu Server 22.04修改DNS全攻略
- 蘋果推出Swift驅動的macOS原生Docker替代品\uD83C\uDF1F
