Docker入門教程(四)Docker Registry
【編者的話】DockerOne組織翻譯了Flux7的Docker入門教程,本文是系列入門教程的第四篇,介紹了Docker Registry,Docker Registry是Docker中的重要組件,本文通過情景的方式對其進行了介紹,圖文并茂,推薦。
在 Docker系列教程的上一篇文章中,我們 討論了Dockerfile的重要性并提供了讓自動構建鏡像更容易的一系列Dockerfile的命令。在這篇文章中,我們將介紹一個重要的Docker 組件:Docker Registry。它是所有倉庫(包括共有和私有)以及工作流的中央Registry。在我們深入Docker Registry之前,先讓我們去看看一些常見的術語和倉庫相關的概念。
- Repositories(倉庫)可以被標記為喜歡或者像書簽一樣標記起來
- 用戶可以在倉庫下評論。
- 私有倉庫和共有倉庫類似,不同之處在于前者不會在搜索結果中顯示,并且也沒有訪問它的權限。用戶設置為合作者才能訪問私有庫。
- 成功推送之后配置webhooks。 </ol>
- Web UI
- 元數據存儲
- 認證服務
- 符號化 </ul>
- Sponsor Registry:第三方的registry,供其客戶和Docker社區使用。
- Mirror Registry:第三方的registry,只讓客戶使用。
- Vendor Registry:由分發Docker鏡像的供應商提供的registry。
- Private Registry:通過與防火墻和額外的安全層的私有實體提供的registry。 </ol>
- 用戶發送請求到index來下載鏡像。
- index 響應返回三個相關部分信息:
- 該鏡像位于的registry
- 該鏡像包括所有層的校驗
- 以授權目的Token > 注意:當請求header里有X-Docker-Token時才會返回Token。而私人倉庫需要基本的身份驗證,對于公有庫它不是強制性的。 </ul> </li>
- 用戶通過響應中返回的Token和registry溝通,registry全權負責鏡像,它存儲基本的鏡像和繼承的層。
- registry現在要與index證實該token是被授權的。
- index會發送“true” 或者 “false”給registry,由此允許用戶下載所需要的鏡像。 </ol>
- 用戶發送帶證書請求到index要求分配庫名。
- 在成功認證,命名空間可用以及庫名被分配之后。index響應返回臨時的token。
- 鏡像連帶token,一起被推送到registry中。
- registry與index證實token,然后在index驗證之后開始讀取推送流。
- 該index然后更新由Docker生成的鏡像校驗。 </ol>
- index接收來自Docker一個刪除庫的信號。
- 如果index驗證庫成功,它將刪除該庫,并返回一個臨時token。
- registry現在接收到帶有該token的刪除信號。
- registry與index核實該token,然后刪除庫以及所有相關信息。
- Docker現在通知有關刪除的index,然后index移除庫的所有記錄。 </ol>
情景B:在用戶想要推送鏡像到registry中。涉及的步驟如下:
情景C:用戶想要從index或registry中刪除鏡像:
情景D:用戶希望在沒有index的獨立模式中使用registry。
使用沒有index的registry,這完全由Docker控制,它最適合于在私有網絡存儲鏡像。registry運行在一個特殊的模式里,此模式限制了registry與Docker index的通信。所有的安全和身份驗證需要用戶自己注意。
情景E:該用戶想要在有index的獨立模式中使用registry。
在這種情況下,一個自定義的index會被創建在私有網絡里來存儲和訪問鏡像。然而,通知Docker有關定制的index是耗時的。 Docker提供一個有趣的概念chaining registries,從而,實現負載均衡和為具體請求而指定的registry分配。在接下來的Docker教程系列中,我們將討論如何在上述每個情景 中使用Docker Registry API ,以及深入了解Docker Security。
原文鏈接:Part 4: Registry & Workflows(翻譯:田浩 審校:李穎杰)
來自:http://dockerone.com/article/104
Docker Registry有三個角色,分別是index、registry和registry client。
角色 1 -- Index
index負責并維護有關用戶帳戶、鏡像的校驗以及公共命名空間的信息。它使用以下組件維護這些信息:
這也分解了較長的URL,以方便使用和驗證庫的擁有者。
角色 2 --Registry
registry是鏡像和圖表的倉庫。然而,它不具有本地數據庫以及不提供用戶認證,由S3、云文件和本地文件系統提供數據庫支持。此外,通過Index Auth service的Token的方式進行認證。Registries可以有不同的類型。我們來分析其中的幾個:
角色 3 --Registry Client
Docker充當registry客戶端來維護推送和拉取,以及客戶端的授權。
Docker Registry工作流程詳解
現在,讓我們討論五種情景模式,以便更好地理解Docker Registry。情景A:用戶要獲取并下載鏡像。所涉及的步驟如下:
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!