基於docker的前端持續整合(一)
開始之前讓我們先拋幾個問題
- 什麼是
docker
,他是虛擬機器嗎,有什麼用 - 怎樣基於
docker
啟動node
服務或者nginx
服務 - 為什麼要持續整合,有什麼好處
一、什麼是docker
Docker
是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後釋出到任何流行的Linux
機器上,也可以實現虛擬化,容器是完全使用沙箱機制,相互之間不會有任何介面。
舉一個栗子
前後端還未分離的時代,前端程式碼在java
專案裡,想要看效果,首先需要安裝jdk
、jre
,配置環境變數,啟動tomcat
,安裝的版本不同,也會導致程式不能執行,如果要部署到多臺伺服器上,環境配置如此麻煩,換一臺機器,就要重來一次,費時費力。
那能不能從根本上解決問題,應用或者軟體可以帶環境安裝?
方案一 虛擬機器
虛擬機器就是在作業系統上執行的另一種作業系統,例如在macOS
上安裝一套windows
的虛擬機器,啟動時跟正常啟動windows
無異,可以還原軟體原始的環境,相互虛擬機器之間完全的隔離,安全性較高
缺點:
- 1、佔用記憶體大
- 2、啟動速度慢 幾分鐘
- 3、資源利用率低
- 4、自帶一些無用步驟,設定使用者啥的
方案二 Linux 容器
這是執行在與它的宿主機器同樣的作業系統上,不是模擬一個完整的作業系統,而是對程式進行隔離,相當於底層作業系統的一個程式,docker
就是基於Linux
容器的開源專案
docker
將應用程式與該程式的依賴,打包在一個檔案裡面。在一個容器中執行這個檔案,就好像在真實的物理機上執行一樣。所以有了docker
,上邊所說的環境問題就沒有了。
缺點:
- 1、安全性相對於虛擬機器低
- 2、資源隔離不如虛擬機器
總結成一句話:docker
是輕量的虛擬機器,可以方便地建立和使用容器,把自己的應用放入容器。可以在容器內進行版本管理、就像管理普通的程式碼一樣,非常方便
還可以參考 阮老師的Docker 入門教程
大家還可以關注我的部落格無聲的部落格