iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 19
0
自我挑戰組

自我學習Docker的30天奇幻旅程系列 第 19

Day19 Docker Hub學習與實作

今天來了解並實用Docker hub。Docker Hub可以說是Docker界的github,能夠輕鬆分享或是取得他人分享的container image,Dockerfile內的FROM取用的image就是來自此。Docker Hub還可以做為團隊合作的用途,可以選擇公開者以及許多有用的功能。

Create Repository

來試著將bulletin放上Docker hub吧。
1.要使用Docker hub第一步當然要先註冊帳號拉,快去辦一個吧Docker Hub連結
2.註冊且登入帳號後找到首頁的Create Repository點擊來產生一個新的庫,接下來就是填寫這個庫的名稱以及公開不公開的設定,就可以create了。

在建立的時候右邊還有提示我們怎麼Push我們的APP到Repository呢。

3.建立好庫之後,該怎麼把我們的APP Push上去呢,跟著右側的提示做吧,透過tag以及push就可以了

$ docker tag local-image:tagname new-repo:tagname
$ docker push new-repo:tagname

那我們要推的是bulletin的APP所以就先改成

$ docker tag bulletinboard:1.0 tubebigbig/bulletinboard:1.0
$ docker push tubebigbig/bulletinboard:1.0

怎麼無法執行呢,該不會哪裡搞錯了吧?其實是因為還沒登入拉
可以透過Docker desktop的dashboard來登入,也可以透過指令docker login來登入。
登入完再執行一次,就可以摟!!

這時候再來看我們剛剛建立的Docker hub Repository是不是多了1.0的tag了呢

之後要使用我們的APP只要透過docker pull就可以直接從Docker hub拉下來了,整個就方便了許多呢。

update Docker hub Repository

接下來肯定會想知道,如果要更新的時候怎麼辦呢,是不是每次都要設定tag再push上去呢?這樣的確是可以,但是一般都會有git來做版控,等於每次都要跟git分開推實在是很麻煩呢。
別擔心,Docker hub跟github還有bitBucket早就做好連接摟,只要配置好設定跟連結,那我們每次在push github或是bitBucket的commit時就可以auto build了。

那該怎麼設置auto build呢?

其實在我們Create Repository時的最下面就可以設置了呢,那已經建立的Repository則是要進入我們的Repository再點擊叫做builds的tab就可以看到了,第一次使用的話就需要我們先授權github或是bitBucket帳號。

授權完github或是bitBucket帳號之後,就可以來建立我們的autobuild功能了,再回到剛剛的builds tab並選擇要建立autobuilds的平台,接下來就可以配置包誇APP在平台內的Repository位置,以及自動測試、建置規則、環境參數等。

來說明建置規則的部分,我們可以配置auto builds的規則,如下圖由左至右則是

  • Source Type
    選擇要用Branch或是Tag
  • Source
    如果Source Type是Branch則代表Branch的分支名,如果是Tag則可以用正規表達式
  • Docker Tag
    設置在Docker hub中要建置的tag名稱,如果Source是用正則可以用sourceref標示其位置release-{sourceref}
  • Dockerfile location
    Dockerfile的名稱
  • Build Context
    預設是/也就是根目錄,可以自行設定到對應Dockerfile的路徑
  • Autobuild
    是否要auto build
  • Build Caching
    建置緩存,可以減少建置的時間

設定好之後就可以點選save,或是save and build直接建立。
建立好之後就會看到觀察auto build的儀表板,具有Build Activity(建立的歷程圖)、Automated Builds(建立的當前狀態,可以在此使用trigger手動建立)以及Recent Builds(最近的建置用條列式來表示)。

接著我們就可以試著去修改我們的APP並且提交commit點到github或是bitBucket,再回來看我們的builds頁面,可以看到偵測到提交後正在自動建置。

成功後

這時候再去tag頁面就可以看到我們更新成功的image。
之後每次只要提交寫好的code到版控平台就可以自動同步建置到Docker hub了。

其他狀態

下圖具有,in progress、success、cancel、fail等狀態

Build Activity的畫面

參考文獻:
docker官方文件


上一篇
Day18 Docker Swarm實作
下一篇
Day20 MongoDB with Docker and Docker secrets
系列文
自我學習Docker的30天奇幻旅程24
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言