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