docker-私有倉庫-身份驗證
阿新 • • 發佈:2020-12-22
服務端
拉取registry映象
docker pull registry
啟動registry容器
docker run -d -p 5000:5000 \
--restart always \
--name registry \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
registry
使用htpasswd建立密碼檔案
registry映象的最新版沒有包含htpasswd,所以我們可以在宿主機上建立密碼檔案,再複製到registry容器中
宿主機上安裝htpasswd(包含在httpd-tools中)
yum install httpd-tools
建立密碼檔案
htpasswd -Bbn guest 123456 >htpasswd
複製到registry容器
docker cp htpasswd registry:/auth/
客戶端
瀏覽器檢視倉儲
訪問 http://<伺服器地址>:5000/v2/_catalog ,要求身份驗證:
驗證通過後頁面:
docker操作
新增insecure-registries配置
修改daemon.json,在insecure-registries陣列中新增伺服器地址(因為沒有配置證書),再重啟docker
{
"insecure-registries": [
"<伺服器地址>:5000"
]
}
登入私有倉庫
docker login -u guest -p 123456 http://<伺服器地址>:5000/
推送映象到私有倉庫
以busybox為例
下載busybox的映象
docker pull busybox
打上自定義標籤
docker tag busybox <伺服器地址>:5000/busybox:test
推送映象
docker push <伺服器地址>:5000/busybox:test
檢視倉儲,已經包含上傳的映象
刪除本地映象
docker rmi <伺服器地址>:5000/busybox:test
從私有倉庫拉取映象
docker pull <伺服器地址>:5000/busybox:test