簡易教學 — 利用 Docker 架設 Gitlab

Steven Chou
AppWorks School
Published in
4 min readNov 27, 2017

--

小弟最近接觸了 Gitlab CI,因為要做一些測試,需要自己架設一個 Gitlab,搜尋了一些相關資訊後,選用了 Docker 來作為架設環境,費了一番功夫後總算完成,將過程做個小筆記分享給大家,也歡迎大家不吝指教

Docker 是一款輕量級的作業系統虛擬化工具,2013 年開始發跡,短短幾年時間已經是不少開發者愛用的工具,他最大的優勢就是相當輕量化,只要做好一次設定就能帶著走,藉由映像檔,幾乎在各種平台上都是隨插隨用,相當方便。

Docker 的兩個基本觀念

  1. Image 映像檔
  2. Container 容器

Image (映像檔)

Docker 採用了 aufs 檔案系統來設計一個可以層層堆疊的 Container 映像檔,將 Container 內的所有程式(包括應用程式、相關函式庫、設定檔),都打包進 Docker 映像檔,並且提供了一個 Dockerfile 設定檔來記錄建立 Container 過程的每一個步驟包括參數。

只要在任何支援 Docker 平臺的環境中,就可以從這個映像檔來建立出一個一模一樣的 Container 來執行同一個應用程式。

Container (容器)

Container 是從 Image 建立的執行實例。它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平台。

Docker 跟一般虛擬機器不同的是,虛擬機器需要安裝作業系統才能執行應用程式,但 Docker 的 Container 不需要另外安裝作業系統。也因為這項因素,讓 Docker 成了一套更為輕量化的虛擬工具。

圖片來源:https://goo.gl/Rm4K63

使用 Docker 的好處

  • 我們可以因應各種專案的需求,去使用不同的環境開發、測試
  • 藉由映像檔,隨處都能繼續開發
  • 有天電腦不小心損壞,藉由映像檔,也能免除重建基本環境的工程

Docker 常用指令

docker images: 列出本機端所有的映像檔 (Images)docker run: 新建並啟用容器 (Container)docker ps -a: 列出所有的容器docker start/stop [Container_Name]: 啟用/終止容器docker exec [Container_Name] [Command]: 執行一段 command 在已啟用的 Container

利用 Docker 架設 Gitlab

利用 Docker,我們能在自己的電腦上,架設一個私人使用的 Gitlab,這樣就可以自己的專案自己管!不用付費就可以做到 Private 的專案版控,但如果電腦損壞,就是另一個故事了…(沒事還是要多備份啊!)

接下來會以 Mac 環境來做示範,首先我們要先到官網下載 Docker

安裝好 Docker 後,Docker hub 上已經有一個包好的 Gitlab image,所以我們只要下指令去把它下載回本機端,就能創建個 Container 來使用。

打開終端機,輸入下列語法

docker image pull gitlab/gitlab-ce:9.0.5-ce.0

新建並啟用 Container

docker run --detach --publish 8787:80 --name gitlab gitlab/gitlab-ce:9.0.5-ce.0
  • - - detach: 在背景執行一個 Container
  • - - public [8787:80]: 設定一個 port 還做 docker 裡頭的 web 接口
  • - - name [gitlab]: 自訂一個 Container 的名稱

建制成功後,我們就可以打開瀏覽器,輸入你的 ip,後面接著你所設定的 port,就可以看到 Gitlab 畫面了!如果你無法顯示出這頁面,先確認一下你的 Docker 是否有在運行,以及 Container 是否有被啟動。

利用 Docker 來自架 Gitlab 後,我們就可以進一步地來建置 Gitlab-CI,來做持續整合 (Continuous integration) 的動作,為我們的專案建立一道防護網。Docker 的簡單介紹就先到此,未來有空再將 Gitlab-CI 的建置用另篇文章來呈現給大家。

--

--