152-Docker三大基礎概念-倉庫

倉庫

鏡像構建完成後,可以很容器的在當前宿主機上運行,但是,如果需要在其它服務器上使用這個鏡像,我們就需要一個集中的存儲、分發鏡像的服務,Docker Registry 就是這樣的服務。

一個 Docker Registry 中可以包含多個倉庫(Repository);每個倉庫可以包含多個標籤(Tag);每個標籤對應一個鏡像。

通常,一個倉庫會包含同一個軟件不同版本的鏡像,而標籤就常用於對應該軟件的各個版本。我們可以通過:<標籤>的格式來指定具體是這個軟件哪個版本的鏡像。如果不給出標籤,將以 latest 作爲默認標籤。

倉庫名經常以兩段式路徑形式出現,比如 jwilder/nginx-proxy,前者往往意味着 Docker Registry 多用戶環境下的用戶名,後者則往往是對應的軟件名。但這並非絕對,取決於所使用的具體 Docker Registry 的軟件或服務。

Docker Registry 公開服務

Docker Registry 公開服務是開發給用戶使用、允許用戶管理鏡像的 Registry 服務。一般這種公開服務允許用戶免費上傳、下載公開的鏡像,並可能提供收費服務供用戶管理私有鏡像。

最長使用的 Registry 公開服務是官方的 Docker Hub,這也是默認的 Registry,並擁有大量的高質量的官方鏡像。此外還要CoreOS的Quay.io,CoreOS相關的鏡像存儲在這裏;Google的Google Container Registry,Kubernetes的鏡像是喲還給你的就是這個服務。

由於某些原因,在國內訪問這些服務可能會比較慢。國內的一些雲服務商提供了針對 Docker Hub 的鏡像服務(Registry Mirror),這些鏡像服務被稱爲加速器。常見的有阿里雲加速器、DaoCloud加速器等。使用加速器會直接從國內的地址下載 Docker Hub的鏡像,比直接從Docker Hub下載速度回提高很多。

國內也有一些雲服務商提供類似於 Docker Hub 的公開服務。比如 時速雲鏡像倉庫、網易雲鏡像倉庫、DaoCloud鏡像市場、阿里雲鏡像庫等。

私有 Docker Registry

除了使用公開服務外,用戶還可以在本地搭建私有 Docker Registry。Docker 官方提供了 Docker Registry 鏡像,可以直接使用作爲私有 Registry 服務。在私有倉庫一節中,會有進一步的搭建私有 Registry 服務的講解。

開源的 Docker Registry 鏡像只提供了 Docker Registry API 的服務端實現,足以支持 docker 命令,不影響使用。但不包含圖形界面,以及鏡像維護、用戶管理、訪問控制等高級功能。在官方的商業化版本 Docker Trusted Registry 中,提供了這些高級功能。

除了官方的 Docker Registry 外,還有第三方軟件實現了 Docker Registry API,甚至提供了用戶界面以及一些高級功能。比如:VMWare HarborSonatype Nexue

概念易混淆部分

倉庫(Repository)是集中存放鏡像的地方。

一個容易混淆的概念是註冊服務器(Registry)。實際上註冊服務器是管理倉庫的具體服務器,每個服務器上可以有多個倉庫,而每個倉庫下面有多個鏡像。從這方面說,倉庫可以被認爲是一個具體的項目或目錄。例如對於倉庫地址 d1.dockerpool.com/ubuntu 來說,d1.dockerpool.com 是註冊服務器地址,Ubuntu 是倉庫名。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章