在docker中,ci指的是持續(xù)集成(Continuous Integration),cd指的是持續(xù)部署(Continuous Deployment);“CI/CD”是一種通過在應(yīng)用開發(fā)階段引入自動(dòng)化來頻繁向客戶交付應(yīng)用的方法,其核心概念是持續(xù)集成、持續(xù)交付和持續(xù)部署。
本教程操作環(huán)境:linux7.3系統(tǒng)、docker19.03版、Dell G3電腦。
docker中ci和cd是什么意思
-
CI 持續(xù)集成(Continuous Integration)
-
CD 持續(xù)部署(Continuous Deployment)
CI/CD 是一種通過在應(yīng)用開發(fā)階段引入自動(dòng)化來頻繁向客戶交付應(yīng)用的方法。CI/CD 的核心概念是持續(xù)集成、持續(xù)交付和持續(xù)部署。作為一個(gè)面向開發(fā)和運(yùn)營團(tuán)隊(duì)的解決方案,CI/CD 主要針對(duì)在集成新代碼時(shí)所引發(fā)的問題。具體而言,CI/CD 可讓持續(xù)自動(dòng)化和持續(xù)監(jiān)控貫穿于應(yīng)用的整個(gè)生命周期(從集成和測(cè)試階段,到交付和部署)。這些關(guān)聯(lián)的事務(wù)通常被統(tǒng)稱為“CI/CD 管道”,由開發(fā)和運(yùn)維團(tuán)隊(duì)以敏捷方式協(xié)同支持。
什么是持續(xù)集成?
我們所用的開發(fā)工具一般叫IDE,直譯就是集成開發(fā)環(huán)境,持續(xù)集成的意思說人話就是當(dāng)你提交代碼后,你不需要自己進(jìn)行重新編譯,打包。
Gitlab有個(gè)功能叫WebHook,作用就是當(dāng)你上傳代碼后它會(huì)通過WebHook指定的url通知代碼更新了,其實(shí)這個(gè)功能自己寫也很簡單,當(dāng)push新代碼后通知你更新,你拉取新代碼,編譯和打包,這并不難。
除了使用WEBHOOK,其實(shí)Gitlab自帶的CI/CD也很方便,你需要裝一個(gè)GitRunner。
還有輪詢掃描方式也是可以實(shí)現(xiàn)的。
什么是持續(xù)部署?
當(dāng)你有多個(gè)服務(wù)器,你打包后的代碼要一個(gè)一個(gè)上傳到服務(wù)器中,然后重新運(yùn)行服務(wù),這是很浪費(fèi)人力和時(shí)間的事,持續(xù)部署的目的就是想解放雙手。
擴(kuò)展知識(shí)
Jenkins是開源CI&CD軟件領(lǐng)導(dǎo)者, 提供超過1000個(gè)插件來支持構(gòu)建、部署、自動(dòng)化, 滿足任何項(xiàng)目的需要。
這玩意就是用來幫你做CICD的,還有很多插件可以使用,無論你是通過tomcat部署,還是ssh運(yùn)行jar包,或者是php項(xiàng)目,它都能實(shí)現(xiàn),事實(shí)上如果讓你自己寫一個(gè)其實(shí)也可以實(shí)現(xiàn),但是既然有東西用就不要自己寫了。
docker
Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的Linux機(jī)器或Windows 機(jī)器上,也可以實(shí)現(xiàn)虛擬化,容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。
我的個(gè)人見解是docker本身是以容器為出發(fā)點(diǎn)的,它本身就是為了不像虛擬機(jī)那樣消耗不必要的資源,并且方便在多平臺(tái)進(jìn)行遷移,省去了運(yùn)行環(huán)境不同所造成的困擾,所以出現(xiàn)了容器這個(gè)概念。
docker compose
php中有個(gè)php composer,如果熟悉php的同學(xué)應(yīng)該就很容易清楚docker compose到底是干嘛的。如果你有好幾個(gè)鏡像要運(yùn)行,寫了好幾個(gè)dockerfile,你需要一個(gè)一個(gè)通過docker build創(chuàng)建鏡像,然后一個(gè)一個(gè)docker run 運(yùn)行。
docker compose的作用是你只需要寫好dockerfile,然后寫一個(gè)compose yml,一條命令它就可以直接創(chuàng)建鏡像+運(yùn)行,省了一大堆事,在compose里更能體現(xiàn)服務(wù)的概念。
docker swarm
docker 集群,你擁有好幾臺(tái)服務(wù)器,同時(shí)安裝了docker,這時(shí)你就會(huì)用到docker swarm了,它的作用就是統(tǒng)一管理這幾臺(tái)服務(wù)器的docker,在使用swarm集群后,事實(shí)上就已經(jīng)開始偏向服務(wù)這個(gè)概念了。
推薦學(xué)習(xí):《docker視頻教程》