摘要:本系列教程翻譯自,系列共有九篇,本文譯自第四篇。由三個部分組成。由發布鏡像的供應商提供的。通過多重安全檢查進行認證的私有。用于進行和的操作,同時用于時的登錄認證。收到刪除信號和。通知已經刪除,刪除數據庫中的所有相關的記錄。
本系列教程翻譯自 Flux7 Docker Tutorial Series,系列共有九篇,本文譯自第四篇 Part 4: Registry & Workflows。
該系列所有文章將參考其他學習資料翻譯,也會加入自己的學習作為部分注解。如有錯誤,歡迎指正。
上篇文章介紹了使用 Dockerfile 進行自動化部署和 Dockerfile 的常用命令,本篇文章來探討 Docker Registry。類似 GitHub,Docker Registry 是用來存儲 Docker 鏡像的地方。了解 Docker Registry 之前先來了解幾個相關的知識吧。
鏡像和倉庫和 GitHub 一樣,可以被收藏和被 “star”。
和 GitHub 一樣,可以在倉庫上面留評論以便和維護人員進行交流。
和 Github 類似私人倉庫不能被搜索到,只有擁有合作者、擁有者權限的用戶才能訪問。
推送成功之后可以配置 webhook。
Docker Registry 由三個部分組成:Index、Registry、Registry Client。
Docker Hub 架構 Docker Index可以把 Index 認為是負責登錄、負責認證、負責存儲鏡像信息和負責對外顯示的外部實現,而 Registry 則是負責存儲鏡像的內部實現,而 Registry Client 則是 Docker 客戶端。
Docker Index 使用以下工具來維護用戶信息、校驗鏡像、以及維護公共 namespace:
網頁界面
元數據存儲
認證服務
令牌化
同時 Docker Index 也用來分解 URL,方便用戶認證和用戶使用。
RegistryRegistry 用來存儲鏡像和統計數據。然而它不會提供數據庫服務,即它不會提供用戶認證服務,由 S3、云文件和本地文件系統提供數據庫支持。另外,由 Index 通過 Token 進行用戶認證。有多種不同的 Registry,下面是其中幾個的例子:
Sponsor Registry 第三方 Registry,為客戶和 Docker 社區提供服務。
Mirror Registry 第三方 Registry,只為客戶提供服務。
Vendor Registry 由發布 Docker 鏡像的供應商提供的 Registry。
Private Registry 通過多重安全檢查進行認證的私有 Registry。
Registry Client用于進行 pull 和 push 的操作,同時用于 docker push 時的登錄認證。
為了更好地理解 Registry Client 的工作流程,下面將詳細描述一下五個案例中的 Docker Registry 工作流程。
情景 A:從官方倉庫 Pull 鏡像用戶對 Index 發出下載請求
Index 返回以下三個部分的信息:
鏡像所在的 Registry。
鏡像所有的層的校驗
認證之后的 Token
用戶使用 Token 和 Registry 進行通信,Registry 負責存儲鏡像和疊加在鏡像上面的改動層。
Registry 確認是否是 Index 所發出的的 Token。
Index 返回確認值,由此判斷用戶是否可以下載鏡像。
>只有在請求的 header 里有 X-Docker-Token 時才會返回 Token。私有倉庫需要認證,而公有倉庫不需要認證。
用戶向 Index 發送憑證,并要求分配 repository 名稱。
認證 namespace 的可用性后,分配 repository 名稱,同時 Index 返回一個臨時 Token。
向 Registry 發送 Token 和鏡像。
Registry 向 Index 確認 Token,確認完畢之后讀取推送流。
Index 更新相關的鏡像信息。
情景 C:從 Index 和 Registry 刪除一個鏡像Index 收到 delete 某個 repository 的請求。
進行 repository 認證和用戶認證,成功后 Index 給客戶端返回一個臨時 Token。
Registry 收到刪除信號和 Token。
Registry 向 Index 驗證 Token,然后刪除對應的鏡像文件。
Registry 通知 Index 已經刪除,Index 刪除數據庫中的所有相關的 repository 記錄。
情景 D:在沒有 Index 的情況下使用 Registry沒有 Index 的 Registry 是完全受 Docker Clinet 控制的。這種模式最適合在私有網絡中存儲鏡像文件。Registry 運行在一個和 Index 沒有通信的環境中,所有的認證問題和安全問題都需要用戶自己解決。
情景 E:在有 Index 的獨立模式中使用 Registry在這種情況下,用戶需要自己架設一個 Index 去解決存儲和認證問題。當然,這種情況下可能會出現和官方 Index 時間不同步的問題。Docker 官方也提供了一個非常有意思的東西叫做 chaining registries,主要是為了解決負載均衡和為具體請求指定具體的 Registry。
當然,我們可以參考 自己搭建本地 Docker Hub 服務 來搭建本地的 Docker Hub。。
接下來的文章中將會繼續介紹如何在以上每個場景中使用 Docker Registry API,并且也會深入了解 Docker 安全。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/7915.html
摘要:本系列教程翻譯自,系列共有九篇,本文譯自第四篇。由三個部分組成。由發布鏡像的供應商提供的。通過多重安全檢查進行認證的私有。用于進行和的操作,同時用于時的登錄認證。收到刪除信號和。通知已經刪除,刪除數據庫中的所有相關的記錄。 本系列教程翻譯自 Flux7 Docker Tutorial Series,系列共有九篇,本文譯自第四篇 Part 4: Registry & Workflo...
摘要:注這篇文章是系列教程中的一篇,本篇文章由發布,原文地址在前面的文章中,作為正在進行的教程系列的一部分,我們討論了。這個系列的其他教程 注:這篇文章是系列教程中的一篇,本篇文章由 Flux7 Labs 發布,原文地址 Docker Tutorial Series, Part 8: Docker Remote API 在前面的文章中,作為正在進行的 Docker 教程系列的一部分...
摘要:本系列教程翻譯自,系列共有九篇,本文譯自第七篇。取出鏡像層插入鏡像層檢索鏡像檢索鏡像的根鏡像獲取指定庫的所有標簽獲取指定庫的指定標簽刪除標簽狀態檢查是為設計的。同時也允許操作相關的用戶倉庫和倉庫。 本系列教程翻譯自 Flux7 Docker Tutorial Series,系列共有九篇,本文譯自第七篇 Part 7: Ultimate Guide for Docker APIs。...
閱讀 742·2021-07-25 21:37
閱讀 3654·2019-08-30 15:55
閱讀 2572·2019-08-30 15:54
閱讀 1717·2019-08-30 15:44
閱讀 3123·2019-08-30 15:44
閱讀 859·2019-08-30 15:43
閱讀 1021·2019-08-29 15:36
閱讀 3038·2019-08-29 10:58