前端 docker + gitlab CI 的持續整合(一)

silenceCoder發表於2018-09-17

基於docker的前端持續整合(一)

開始之前讓我們先拋幾個問題

  • 什麼是docker,他是虛擬機器嗎,有什麼用
  • 怎樣基於docker啟動node服務或者nginx服務
  • 為什麼要持續整合,有什麼好處

一、什麼是docker

Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後釋出到任何流行的Linux機器上,也可以實現虛擬化,容器是完全使用沙箱機制,相互之間不會有任何介面。

舉一個栗子

前後端還未分離的時代,前端程式碼在java專案裡,想要看效果,首先需要安裝jdkjre,配置環境變數,啟動tomcat,安裝的版本不同,也會導致程式不能執行,如果要部署到多臺伺服器上,環境配置如此麻煩,換一臺機器,就要重來一次,費時費力。

那能不能從根本上解決問題,應用或者軟體可以帶環境安裝?

前端 docker + gitlab CI 的持續整合(一)

方案一 虛擬機器

虛擬機器就是在作業系統上執行的另一種作業系統,例如在macOS上安裝一套windows的虛擬機器,啟動時跟正常啟動windows無異,可以還原軟體原始的環境,相互虛擬機器之間完全的隔離,安全性較高 缺點:

  • 1、佔用記憶體大
  • 2、啟動速度慢 幾分鐘
  • 3、資源利用率低
  • 4、自帶一些無用步驟,設定使用者啥的

方案二 Linux 容器

這是執行在與它的宿主機器同樣的作業系統上,不是模擬一個完整的作業系統,而是對程式進行隔離,相當於底層作業系統的一個程式,docker 就是基於Linux容器的開源專案 docker將應用程式與該程式的依賴,打包在一個檔案裡面。在一個容器中執行這個檔案,就好像在真實的物理機上執行一樣。所以有了docker,上邊所說的環境問題就沒有了。 缺點:

  • 1、安全性相對於虛擬機器低
  • 2、資源隔離不如虛擬機器

總結成一句話:docker是輕量的虛擬機器,可以方便地建立和使用容器,把自己的應用放入容器。可以在容器內進行版本管理、就像管理普通的程式碼一樣,非常方便

還可以參考 阮老師的Docker 入門教程

大家還可以關注我的部落格無聲的部落格

相關文章