趙亦齊
當項目變得越來越復雜,一個服務已經(jīng)無法滿足需求時,你可能需要同時部署數(shù)據(jù)庫、后端服務、前端網(wǎng)頁、緩存組件……這時,如果還一個一個手動dockerrun,簡直是災難
這就是DockerCompose登場的時機!
?一、什么是DockerCompose?為什么需要它?
DockerCompose是Docker官方推出的容器編排工具,用于定義和運行多容器應用。
通過一個docker-compose.yml文件,就可以用一條命令docker-composeup,一次性拉起整個項目中的多個服務,像啟動引擎一樣簡單??
使用Compose的優(yōu)勢:
一鍵啟動/停止多個容器
配置集中管理,結(jié)構(gòu)清晰
支持服務依賴順序(如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:
關鍵結(jié)構(gòu)說明:
三、常見服務組合案例
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é)一下
SKY Top News|蘇丹的無人機襲擊事件日益增多,襲擊目標包括學校和...
官員報告稱,至少有九人死亡,建筑物和道路受損-。A small tsunami hit an island in southern Japan.一場小型海嘯襲擊了日本南部的一個島嶼_。Russia criticizes restrictions on two Russian ships that South Korea says are meant to punish Russia for banned trade with North Korea.俄羅斯批評對兩艘俄羅斯船只的限等會說|。
SKY Top News|加沙醫(yī)院遇襲事件:分析結(jié)果與以色列為空襲提供證據(jù)...
strike ;vi./n 擊打;打動; 罷工(struck, struck/stricken); 近義:hit; knock; beat struggle; ;v./n 努力;掙扎;奮斗;聯(lián)想: contest; fight ;compete; swallow; ;n. /v. n燕子;咽;淹沒;吞沒;詞中詞:wallow 沉迷;溺于;wall 墻;allow; take place 發(fā)生; 聯(lián)想:happen occur temple; ;n. 廟好了吧!
FN Top News|以色列在伊斯法罕行動中直擊伊朗核計劃核心
他告訴記者:“截至今天下午4點,這一數(shù)字已超過900||?!辈⒀a充說,鑒于該地區(qū)可能遭受更強烈地震的襲擊,居民應做好避難或撤離的準備——-。據(jù)《每日新聞》報道,截至周二,該島鏈在10天內(nèi)發(fā)生了創(chuàng)紀錄的740次地震-_。這些地震均被記錄為日本7級地震烈度表的1級或更高,該表用于描述震動程度,7級為最強-。較低的5級地震等會說————。
來源:紅網(wǎng)
作者:瀧樂英
編輯:方永怡
本文為紅辣椒評論 原創(chuàng)文章,僅系作者個人觀點,不代表紅網(wǎng)立場。轉(zhuǎn)載請附原文出處鏈接和本聲明。