述
上文看了如何把本地的鏡像上傳到Docker Hub上面,但是如果我們對(duì)鏡像要進(jìn)行修改的時(shí)候,就得先去改Dockerfile,然后再去build,再push到Docker Hub上面去,修改頻繁的情況下,要一種重復(fù)這幾個(gè)操作,這就比較難受了,所以下面來(lái)看下自動(dòng)化構(gòu)建
自動(dòng)化構(gòu)建
自動(dòng)化構(gòu)建,就是使用Docker Hub連接一個(gè)包含Dockerfile文件的Github倉(cāng)庫(kù)或者BitBucket倉(cāng)庫(kù),DockerHub則會(huì)自動(dòng)構(gòu)建鏡像,通過(guò)這種方式構(gòu)建出來(lái)的鏡像會(huì)被標(biāo)記為Automated Build,也稱之為受信構(gòu)建(Trusted Build),這種構(gòu)建方式構(gòu)建出來(lái)的鏡像,使其他人在使用的時(shí)候可以自由查看Dockerfile的內(nèi)容,知道鏡像是怎么來(lái)的,同時(shí)由于構(gòu)建過(guò)程是自動(dòng)的,所以能確保倉(cāng)庫(kù)中的鏡像是最新的.
下面來(lái)看一下具體怎么操作(這里演示用gitHub了,為什么呢?因?yàn)槲覜]用過(guò)BitBucket.):
關(guān)聯(lián)GitHub
首先登錄到Docker Hub,點(diǎn)擊右上角頭像,然后賬號(hào)設(shè)置,如圖:
然后如下圖,關(guān)聯(lián)到自己的github賬號(hào).
新建倉(cāng)庫(kù)
gitHub關(guān)聯(lián)好之后,去新建一個(gè)倉(cāng)庫(kù),如圖
信息填寫完成之后點(diǎn)create就好了
新建GitHub倉(cāng)庫(kù)
DockerHub創(chuàng)建好了之后,去GitHub中也需要?jiǎng)?chuàng)建一個(gè)倉(cāng)庫(kù),用來(lái)放Dockerfile文件,如下:
這里Dockerfile的內(nèi)容還是和我們之前的Dockerfile內(nèi)容一樣,如下:
FROM nginx
MAINTAINER zhou "zhouze_java@sina.com"
RUN echo 'hello docker!'>/usr/share/nginx/html/index.html
到這一步,gitHub中的操作就完成了
配置自動(dòng)構(gòu)建
再進(jìn)到DockerHub,點(diǎn)擊剛剛新建好的倉(cāng)庫(kù)進(jìn)去,然后上面的選項(xiàng)卡切換到Builds,如圖:
點(diǎn)擊配置進(jìn)去,然后選擇剛剛在git上創(chuàng)建的倉(cāng)庫(kù),然后其他都用默認(rèn)的就ok,如下:
最后點(diǎn)擊Sava And Build就會(huì)自動(dòng)構(gòu)建了, 如下圖,就是在構(gòu)建中:
等一段時(shí)間,就可以看到是構(gòu)建成功還是失敗了,如下:
這樣配置完成之后,一旦GitHub倉(cāng)庫(kù)中的Dockerfile文件有更新,Docker Hub上的鏡像構(gòu)建就會(huì)自動(dòng)觸發(fā),不用人工干預(yù),從而保證鏡像始終都是最新的.
然后用戶就可以通過(guò)docker pull
命令去獲取鏡像了,關(guān)于自動(dòng)化構(gòu)建就先說(shuō)到這里