iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 10
0
DevOps

用30天來介紹和使用 Docker系列 第 10

Day10:使用 Docker Cloud 建構 Docker Image

今天要介紹的部份是使用 Docker Cloud 去建構 Docker Image。 Docker Cloud 有提供可以在雲端裡建構 Docker Image 的功能,這樣就可以不用在自已的本地(Local)端下執行 docker build 的指令去建構 Docker Image。

Docker Cloud 可以連結到 GitHub 或是 Bitbucket ,就是說只要把 Dockerfile 的 code Push 到 GitHub 上, Docker Cloud 就會直接自動的去建構 Docker Image。這樣的好處就是說如果本地端的電腦硬體規格不高,可以把建構 Docker Image 的工作放到雲端去做。另外一個好處就是在雲端 Build Docker Image 完畢時,不用將 Docker Image Push 到 Docker Hub 上節省了網路傳輸的時間。

如下圖:
https://ithelp.ithome.com.tw/upload/images/20171213/201034562J5NZJrJSH.png

上圖就是一個 Client 把 Code Push 到 Git Hub 上,Docker Cloud 就會自動的把 Dockerfile code pull 下來進行 Build 的動作,以下就來操作如何使用 Docker Cloud。

在使用 Docker Cloud,Build Docker Image 前要做的事如下:

  1. GitHub 上需要準備一個可以啟動 tomcat service 的 Dockerfile,網址如下:
    https://github.com/jackyoh/tomcat-image-example

  2. 按照第6天介紹的方法註冊 Docker Hub 的帳號,這樣就可以在 Docker Cloud 上登入

開始進行設定 Docker Cloud 連結到 GitHub,步驟如下:

  1. 進入 Docker Cloud 的網站,按下右上角的 Sign in,輸入帳號、密碼之後按下 login如下圖
    https://ithelp.ithome.com.tw/upload/images/20171213/20103456e0u0Ks09qe.png

  2. 進入 Docker cloud 的網頁之後選擇 Repositories,如下圖
    https://ithelp.ithome.com.tw/upload/images/20171213/201034567NHd1BIENh.png

  3. 按下 Create 按鈕,如下圖
    https://ithelp.ithome.com.tw/upload/images/20171213/20103456Gaun8PzlWB.png

  4. 設定連結到 GitHub,如下圖
    https://ithelp.ithome.com.tw/upload/images/20171213/20103456MSxD9njOL1.png

  5. 點選 Source providers 的 GitHub 插頭,如下圖
    https://ithelp.ithome.com.tw/upload/images/20171213/20103456BWIk0cdgGb.png

  6. 按下插頭之後,需要登入 GitHub 做認證,如下圖
    https://ithelp.ithome.com.tw/upload/images/20171213/20103456fYDzAW1IBr.png

  7. 登入 GitHub 後插頭圖片就變亮了,如下圖
    https://ithelp.ithome.com.tw/upload/images/20171213/20103456hr2TKkSwFl.png

  8. 這時就可以按下右上角的 Repositories,之後再按 Create 如下圖
    https://ithelp.ithome.com.tw/upload/images/20171213/20103456FH4ninVBzx.png

  9. 填寫以下建立 Docker Image 的表單資訊,之後就可以按create,如下圖
    https://ithelp.ithome.com.tw/upload/images/20171213/20103456PiYY5GPrUJ.png

  10. 按下 trigger 就可以執行 Build Code 的動作,如下圖
    https://ithelp.ithome.com.tw/upload/images/20171213/201034568HGzmwELX5.png

另外如果我們把 code push 到 github 上會自動 Build Code 不用按 trigger。在執行Build 的時侯有可能會花一小段的時間在 PENDING 所以要有耐心等待。

  1. Build 完之後結果如下
    https://ithelp.ithome.com.tw/upload/images/20171213/20103456qQqkgeDNUS.png

這個畫面的右邊主要是第一次 Dockerfile 寫錯所以沒有 Build 成功,第二次修改 Dockerfile 之後才Build 成功,可以點連結下去看Build Docker Image 的 log,如下圖:
https://ithelp.ithome.com.tw/upload/images/20171213/20103456YKXw6xigNM.png

  1. 可以把Build完的 Docker image pull 回 local 測試如下指令
$ docker run -it -d -p 8080:8080 jackyohhub/build-tomcat-test

Image Name 在第9步驟填表單時設定的

  1. 可以看到 tomcat 的service 被啟動畫面如下
    https://ithelp.ithome.com.tw/upload/images/20171213/20103456ZM6f43cKtb.png

今天已經介紹如何直接使用 Docker Cloud 來 Build Docker Image,有這樣的功能之後在建構Docker Image不一定要在 local 做,也可以把這個工作放在 Cloud做,看需求而定。

Docker Cloud 還有一些沒有介紹到的功能,有興趣的話可以使用 Docker Hub 的帳號、密碼登入進去玩玩看。

Docker 的官方網站有提供如何使用 Docker Cloud 去 Build Docker Image 的影片,網址如下:
https://www.youtube.com/watch?v=sl2mfyjnkXk&feature=youtu.be


上一篇
Day9:如何備份 Docker Image 為 tar 檔
下一篇
Day11:介紹執行 Docker Container 常用到的指令(一)
系列文
用30天來介紹和使用 Docker30

1 則留言

0
itachi0124
iT邦新手 5 級 ‧ 2018-01-08 22:29:52

Dockerfile 是要先寫在 github 上 ? 再用 Docker Cloud 去 bulid 它

是。

最主要是要在 Docker Clouder 設定把 GitHub 的 repository 連結起來。

我要留言

立即登入留言