倉(cāng)庫(kù)(Repository)是集中存放鏡像的地方。
一個(gè)容易混淆的概念是注冊(cè)服務(wù)器(Registry)。實(shí)際上注冊(cè)服務(wù)器是管理倉(cāng)庫(kù)的具體服務(wù)器,每個(gè)服務(wù)器上可以有多個(gè)倉(cāng)庫(kù),而每個(gè)倉(cāng)庫(kù)下面有多個(gè)鏡像。從這方面來(lái)說(shuō),倉(cāng)庫(kù)可以被認(rèn)為是一個(gè)具體的項(xiàng)目或目錄。例如對(duì)于倉(cāng)庫(kù)地址 dl.dockerpool.com/ubuntu 來(lái)說(shuō),dl.dockerpool.com 是注冊(cè)服務(wù)器地址,ubuntu 是倉(cāng)庫(kù)名。
大部分時(shí)候,并不需要嚴(yán)格區(qū)分這兩者的概念。
目前 Docker 官方維護(hù)了一個(gè)公共倉(cāng)庫(kù) Docker Hub,其中已經(jīng)包括了超過(guò) 15,000 的鏡像。大部分需求,都可以通過(guò)在 Docker Hub 中直接下載鏡像來(lái)實(shí)現(xiàn)。
可以通過(guò)執(zhí)行 docker login 命令來(lái)輸入用戶名、密碼和郵箱來(lái)完成注冊(cè)和登錄。
注冊(cè)成功后,本地用戶目錄的 .dockercfg 中將保存用戶的認(rèn)證信息。
用戶無(wú)需登錄即可通過(guò) docker search 命令來(lái)查找官方倉(cāng)庫(kù)中的鏡像,并利用 docker pull 命令來(lái)將它下載到本地。
例如以 centos 為關(guān)鍵詞進(jìn)行搜索:
$ sudo docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 465 [OK]
tianon/centos CentOS 5 and 6, created using rinse instea... 28
blalor/centos Bare-bones base CentOS 6.5 image 6 [OK]
saltstack/centos-6-minimal 6 [OK]
tutum/centos-6.4 DEPRECATED. Use tutum/centos:6.4 instead. ... 5 [OK]
...
可以看到返回了很多包含關(guān)鍵字的鏡像,其中包括鏡像名字、描述、星級(jí)(表示該鏡像的受歡迎程度)、是否官方創(chuàng)建、是否自動(dòng)創(chuàng)建。 官方的鏡像說(shuō)明是官方項(xiàng)目組創(chuàng)建和維護(hù)的,automated 資源允許用戶驗(yàn)證鏡像的來(lái)源和內(nèi)容。
根據(jù)是否是官方提供,可將鏡像資源分為兩類。
一種是類似 centos 這樣的基礎(chǔ)鏡像,被稱為基礎(chǔ)或根鏡像。這些基礎(chǔ)鏡像是由 Docker 公司創(chuàng)建、驗(yàn)證、支持、提供。這樣的鏡像往往使用單個(gè)單詞作為名字。
還有一種類型,比如 tianon/centos 鏡像,它是由 Docker 的用戶創(chuàng)建并維護(hù)的,往往帶有用戶名稱前綴??梢酝ㄟ^(guò)前綴 user_name/ 來(lái)指定使用某個(gè)用戶提供的鏡像,比如 tianon 用戶。
另外,在查找的時(shí)候通過(guò) -s N 參數(shù)可以指定僅顯示評(píng)價(jià)為 N 星以上的鏡像。
下載官方 centos 鏡像到本地。
$ sudo docker pull centos
Pulling repository centos
0b443ba03958: Download complete
539c0211cd76: Download complete
511136ea3c5a: Download complete
7064731afe90: Download complete
用戶也可以在登錄后通過(guò) docker push 命令來(lái)將鏡像推送到 Docker Hub。
自動(dòng)創(chuàng)建(Automated Builds)功能對(duì)于需要經(jīng)常升級(jí)鏡像內(nèi)程序來(lái)說(shuō),十分方便。 有時(shí)候,用戶創(chuàng)建了鏡像,安裝了某個(gè)軟件,如果軟件發(fā)布新版本則需要手動(dòng)更新鏡像。。
而自動(dòng)創(chuàng)建允許用戶通過(guò) Docker Hub 指定跟蹤一個(gè)目標(biāo)網(wǎng)站(目前支持 GitHub 或 BitBucket)上的項(xiàng)目,一旦項(xiàng)目發(fā)生新的提交,則自動(dòng)執(zhí)行創(chuàng)建。
要配置自動(dòng)創(chuàng)建,包括如下的步驟:
之后,可以 在Docker Hub 的自動(dòng)創(chuàng)建頁(yè)面中跟蹤每次創(chuàng)建的狀態(tài)。