導讀 | index顧名思義“索引”,index服務主要提供鏡像索引以及使用者認證的功能。下載鏡像的時候,如下圖所示,首先會去index服務上做認證,然後查找鏡像所在的registry的地址並放回給docker客戶端,最終docker客戶端再從registry下載鏡像,當然在下載過程中registry會去index校驗客戶端token的合法性。不同鏡像可以保存在不同的registry服務上,其索引資訊都放在index服務上。 |
#
docker倉庫 的實現,有兩種運作模式
(1)standalone=true:在這個模式下,倉庫本身提供了簡單的index服務,在實作過程中index只是實作了簡單的索引功能,沒有實作使用者認證功能
(2)standalone=false:在這個模式下,需要配置index的服務存取點,需自行實作index服務
index對外提供的REST API介面如下:
PUT /v1/repositories/(namespace)/(repo_name)/
在docker push的流程中會呼叫到,其作用是建立一個repository。建立之前會對使用者密碼以及權限進行驗證,如果合法,則最終會傳回一個token至docker客戶端
DELETE /v1/repositories/(namespace)/(repo_name)/
刪除一個repository,刪除之前會對使用者密碼以及權限進行驗
PUT /v1/repositories/(namespace)/(repo_name)/images
在docker push流程中會呼叫到,其作用是更新repository對應的image列表,更新之前會校驗攜帶的token
GET /v1/repositories/(namespace)/(repo_name)/images
在docker pull流程中會被呼叫到,其作用是取得repository對應的image列表。取得之前會對使用者密碼以及權限進行驗證
PUT /v1/repositories/(namespace)/(repo_name)/auth
校驗token的合法性
GET /v1/users/
docker login會呼叫到此接口,用來驗證使用者的合法性
POST /v1/users/
docker login會呼叫到此接口,可用來建立一個使用者
PUT /v1/users/username/
用來更新使用者資訊
各個介面的請求的具體Header、Action、Response,可參考 這裡(https://docs.docker.com/reference/api/docker-io_api/)
以上是了解docker index服務最簡單的方法就在這裡的詳細內容。更多資訊請關注PHP中文網其他相關文章!