本系列教程翻譯自 Flux7 Docker Tutorial Series,系列共有九篇,本文譯自第四篇 Part 4: Registry & Workflows。
該系列全部文章將參考其餘學習資料翻譯,也會加入本身的學習做爲部分註解。若有錯誤,歡迎指正。web
上篇文章介紹了使用 Dockerfile
進行自動化部署和 Dockerfile
的經常使用命令,本篇文章來探討 Docker Registry。相似 GitHub,Docker Registry 是用來存儲 Docker 鏡像的地方。瞭解 Docker Registry 以前先來了解幾個相關的知識吧。docker
Docker Registry 由三個部分組成:Index、Registry、Registry Client。數據庫
能夠把 Index 認爲是負責登陸、負責認證、負責存儲鏡像信息和負責對外顯示的外部實現,而 Registry 則是負責存儲鏡像的內部實現,而 Registry Client 則是 Docker 客戶端。安全
Docker Index 使用如下工具來維護用戶信息、校驗鏡像、以及維護公共 namespace:網絡
同時 Docker Index 也用來分解 URL,方便用戶認證和用戶使用。架構
Registry 用來存儲鏡像和統計數據。然而它不會提供數據庫服務,即它不會提供用戶認證服務,由 S三、雲文件和本地文件系統提供數據庫支持。另外,由 Index 經過 Token 進行用戶認證。有多種不一樣的 Registry,下面是其中幾個的例子:負載均衡
用於進行 pull 和 push 的操做,同時用於 docker push
時的登陸認證。工具
爲了更好地理解 Registry Client 的工做流程,下面將詳細描述一下五個案例中的 Docker Registry 工做流程。學習
X-Docker-Token
時纔會返回 Token。私有倉庫須要認證,而公有倉庫不須要認證。
沒有 Index 的 Registry 是徹底受 Docker Clinet 控制的。這種模式最適合在私有網絡中存儲鏡像文件。Registry 運行在一個和 Index 沒有通訊的環境中,全部的認證問題和安全問題都須要用戶本身解決。ui
在這種狀況下,用戶須要本身架設一個 Index 去解決存儲和認證問題。固然,這種狀況下可能會出現和官方 Index 時間不一樣步的問題。Docker 官方也提供了一個很是有意思的東西叫作 chaining registries,主要是爲了解決負載均衡和爲具體請求指定具體的 Registry。
固然,咱們能夠參考 本身搭建本地 Docker Hub 服務 來搭建本地的 Docker Hub。。
接下來的文章中將會繼續介紹如何在以上每一個場景中使用 Docker Registry API,而且也會深刻了解 Docker 安全。