今天要介紹的部份是使用 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 上節省了網路傳輸的時間。
如下圖:
上圖就是一個 Client 把 Code Push 到 Git Hub 上,Docker Cloud 就會自動的把 Dockerfile code pull 下來進行 Build 的動作,以下就來操作如何使用 Docker Cloud。
在使用 Docker Cloud,Build Docker Image 前要做的事如下:
GitHub 上需要準備一個可以啟動 tomcat service 的 Dockerfile,網址如下:
https://github.com/jackyoh/tomcat-image-example
按照第6天介紹的方法註冊 Docker Hub 的帳號,這樣就可以在 Docker Cloud 上登入
開始進行設定 Docker Cloud 連結到 GitHub,步驟如下:
進入 Docker Cloud 的網站,按下右上角的 Sign in,輸入帳號、密碼之後按下 login如下圖
進入 Docker cloud 的網頁之後選擇 Repositories,如下圖
按下 Create 按鈕,如下圖
設定連結到 GitHub,如下圖
點選 Source providers 的 GitHub 插頭,如下圖
按下插頭之後,需要登入 GitHub 做認證,如下圖
登入 GitHub 後插頭圖片就變亮了,如下圖
這時就可以按下右上角的 Repositories,之後再按 Create 如下圖
填寫以下建立 Docker Image 的表單資訊,之後就可以按create,如下圖
按下 trigger 就可以執行 Build Code 的動作,如下圖
另外如果我們把 code push 到 github 上會自動 Build Code 不用按 trigger。在執行Build 的時侯有可能會花一小段的時間在 PENDING 所以要有耐心等待。
這個畫面的右邊主要是第一次 Dockerfile 寫錯所以沒有 Build 成功,第二次修改 Dockerfile 之後才Build 成功,可以點連結下去看Build Docker Image 的 log,如下圖:
$ docker run -it -d -p 8080:8080 jackyohhub/build-tomcat-test
Image Name 在第9步驟填表單時設定的
今天已經介紹如何直接使用 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
Dockerfile 是要先寫在 github 上 ? 再用 Docker Cloud 去 bulid 它
是。
最主要是要在 Docker Clouder 設定把 GitHub 的 repository 連結起來。