當(dāng)項目變得越來越復(fù)雜,一個服務(wù)已經(jīng)無法滿足需求時,你可能需要同時部署數(shù)據(jù)庫、后端服務(wù)、前端網(wǎng)頁、緩存組件……這時,如果還一個一個手動dockerrun,簡直是災(zāi)難
這就是DockerCompose登場的時機!
?一、什么是DockerCompose?為什么需要它?
DockerCompose是Docker官方推出的容器編排工具,用于定義和運行多容器應(yīng)用。
通過一個docker-compose.yml文件,就可以用一條命令docker-composeup,一次性拉起整個項目中的多個服務(wù),像啟動引擎一樣簡單??
使用Compose的優(yōu)勢:
一鍵啟動/停止多個容器
配置集中管理,結(jié)構(gòu)清晰
支持服務(wù)依賴順序(如DB先啟動)
本地開發(fā)、測試環(huán)境更輕松
更適合多人協(xié)作部署場景
二、docker-compose.yml文件結(jié)構(gòu)說明
下面是一個典型的Compose配置文件結(jié)構(gòu):
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:
關(guān)鍵結(jié)構(gòu)說明:
三、常見服務(wù)組合案例
LAMP(Linux+Apache+MySQL+PHP)
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)
適用于現(xiàn)代前后端分離開發(fā)架構(gòu):
services:frontend:build:./frontendports:-"3000:80"backend:build:./backendports:-"5000:5000"depends_on:-mongomongo:image:mongo
Compose可以靈活支持不同編程語言與框架組合,讓你更輕松實現(xiàn)項目整體容器化!
四、實戰(zhàn):一鍵部署多容器WordPress+MySQL
我們將部署一個最常見的實際案例:WordPress+MySQL組合。
創(chuàng)建項目結(jié)構(gòu):
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-composeup-d
打開瀏覽器訪問http://localhost:8080,你將看到熟悉的WordPress安裝界面!
?常用Compose命令匯總
總結(jié)一下
電競文,身披大佬馬甲喜劇人大帥哥VS電競天才少年又乖又甜!
第二本小說:和大神網(wǎng)戀后我紅了作者:月喜兔類型: 原創(chuàng)-ca-近代現(xiàn)代-愛情進度:連載中風(fēng)格:輕松視角:z s 簡介:蘇念白是王者榮耀新人主播。因拒絕和游戲CP面基,直播平臺活動前夕慘遭背叛。問他傷不傷心,蘇念白:“別問,問就是我的上分工具人無了_——?!碧K念白當(dāng)晚含淚直播,好巧不巧,第一把就撞車渣男帶妹 《一不小心和電競大神網(wǎng)戀了》作者:既白公子第1章網(wǎng)戀對象成了電競大神?“祁愿,你是不是沒把我當(dāng)朋友?這么大的事你居然瞞我到現(xiàn)在,要不是我看到了有幫助請點贊|——?!逼钤竸偨油ê糜牙踝拥碾娫挘褪盏搅伺^蓋臉的一頓質(zhì)問。祁愿怔了一下,連手上的游戲也顧不上打,反問了過去:“栗子,你這話是什么意思?”有幫助請點贊_|。純愛之推薦《和豪門大佬網(wǎng)戀后我紅了》