- 參考
docker compose
https://docs.docker.com/compose/install/
開發(fā)部署流程
規(guī)劃磁盤使用
在服務(wù)器上運(yùn)行的Docker容器可以分為兩類雨女,
- 一類是業(yè)務(wù)型革骨,主要是業(yè)務(wù)相關(guān)的接口服務(wù)季春,該類型容器采用了之前設(shè)計(jì)的代碼鏡像分離的原則丸相,代碼存儲(chǔ)在Github上碳胳,代碼可能會(huì)經(jīng)常更新字币,鏡像存儲(chǔ)在私有鏡像庫中耐亏,變動(dòng)可能性不大转晰。
- 另一類是運(yùn)維型龟糕,比如日志桐磁、監(jiān)控等服務(wù),該類型的容器就是來源一個(gè)鏡像讲岁。
不管是那種類型的容器我擂,由于這是正式環(huán)境,需要對(duì)容器的運(yùn)行狀態(tài)進(jìn)行保存缓艳,所以在運(yùn)行時(shí)都需要掛接服務(wù)器本地磁盤校摩。
根據(jù)不同類型的容器規(guī)劃了兩個(gè)主目錄存儲(chǔ):
/home/svr/codebase/
存儲(chǔ)業(yè)務(wù)項(xiàng)目代碼,內(nèi)容來源是Github或是拷貝
/home/svr/opsbase/
存儲(chǔ)運(yùn)維類型的容器或是業(yè)務(wù)類型容器在運(yùn)行過程中存儲(chǔ)的數(shù)據(jù)
/home/svr/deploybase
存儲(chǔ)用于部署的命令或文本
下載需要代碼
由于代碼和鏡像是分離的阶淘,所以代碼的下載和更新也需要單獨(dú)處理
$ git clone https://github.com/dockersample/chapter2-webapi.git /home/svr/codebase/webapi
編排微服務(wù)
Docker Compose 是一個(gè)用于定義和運(yùn)行多容器Docker應(yīng)用程序的工具衙吩。
- 安裝Compose
執(zhí)行下面的命令下載最新的Compose
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#如果有執(zhí)行權(quán)限問題執(zhí)行下面的語句
$sudo chmod +x /usr/local/bin/docker-compose
#測(cè)試安裝是否成功
$ docker-compose --version
- 編排微服務(wù)
現(xiàn)在咱們有兩套微服務(wù),一套是基于ELK的應(yīng)用日志系統(tǒng)溪窒,另外一套是 dotnet core 開發(fā)的webapi
在目錄 /home/svr/deploybase 目錄下新建 docker-compose.yml 文件
version: '3'
services:
elk_log:
image: "192.168.10.224:5005/sebp/elk"
ports:
- "5601:5601"
- "9200:9200"
- "9300:9300"
volumes:
- /home/svr/opsbase/elk_log:/var/lib/elasticsearch
webapi:
image: "192.168.10.224:5005/djm/dotnet"
ports:
- "8001:5000"
volumes:
- /home/svr/codebase/webapi:/codebase
運(yùn)行命令坤塞,根據(jù)上面的描述文件,一起啟用上面的兩個(gè)微服務(wù)
docker-compose up