1. 程式人生 > 實用技巧 >docker-私有倉庫-身份驗證

docker-私有倉庫-身份驗證

服務端

拉取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