您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關如何進行docker registry 私有倉庫的搭建,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
隨著docker使用的鏡像越來越多,就需要有一個保存鏡像的地方,這就是倉庫。目前常用的兩種倉庫:公共倉庫和私有倉庫。最方便的就是使用公共倉庫上傳和下載,下載公共倉庫的鏡像是不需要注冊的,但是上傳時,是需要注冊的。私有倉庫最常用的就是Registry、Harbor兩種,那接下來詳細介紹如何搭建registry私有倉庫。
兩臺CentOS7.4,一臺為Docker私有倉庫;另一臺為Docker客戶端,測試使用;
# <!--docker宿主機開啟路由功能--> echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf <!--刷新配置--> sysctl -p net.ipv4.ip_forward = 1 <!--配置鏡像加速--> vim /etc/docker/daemon.json <!--添加阿里云加速--> {"registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"]} <!--重新啟動docker服務--> systemctl reload docker <!--查找registry鏡像--> docker search registry docker pull registry <!--registry鏡像可以直接先pull下來,也可以不下載,根據自己情況而定--> docker run -d -p 5000:5000 --name registry --restart=always -v /opt/registry:/var/lib/registry registry <!--查看docker運行的容器--> docker ps <!--查看docker所有鏡像--> docker images <!--配置docker服務支持registry服務--> vim /etc/docker/daemon.json {"registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"], "insecure-registries":["192.168.100.10:5000"] <!--添加此行--> } <!--重新啟動docker服務--> systemctl reload docker docker info
# 給鏡像打標簽 docker tag mysql 192.168.25.140:5000/mysql # 上傳的鏡像 docker push 192.168.25.140:5000/mysql <!--客戶端安裝docker服務,配置鏡像加速--> <!--配置docker支持registry服務 --> vim /etc/docker/daemon.json {"registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"], "insecure-registries":["192.168.100.10:5000"] <!--添加此行--> } <!--重新啟動docker服務--> systemctl restart docker <!--客戶端下載私有倉庫中的鏡像--> docker pull 192.168.25.140:5000/mysql docker images <!--查看鏡像是否下載成功-->
但是現在存在一個問題,如果這也部署的話企業內部所有人員皆可訪問我們的私有倉庫,為了安全起見,接下來為registry添加一個身份驗證,只有通過了身份驗證才可以上傳或者下載私有倉庫中的鏡像。
<!--安裝加密工具httpd-tools--> yum -y install httpd-tools <!--創建存放驗證密鑰目錄--> mkdir /opt/registry-auth <!--配置registry身份驗證數據庫--> <!--"-Bbn”參數解釋:B強制密碼加密;b在命令中輸入密碼,不提示輸入密碼;n不更新密鑰文件--> htpasswd -Bbn bob pwd@123 > /opt/registry-auth/htpasswd <!--刪除此服務器上的所有容器,接下來重新生成一個需要身份驗證的私有倉庫容器--> docker run -d -p 5000:5000 --restart=always \ -v /opt/registry-auth/:/auth/ \ -v /opt/registry:/var/lib/registry --name registry-auth -e "REGISTRY_AUTH=htpasswd" \ -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \ -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" registry <!--重新運行一個支持身份驗證的registry私有鏡像倉庫容器--> docker tag tomcat:latest 192.168.100.10:5000/image/tomcat:1.0 docker push 192.168.100.10:5000/image/tomcat:1.0 <!--測試不通過身份驗證是否可以往私有倉庫上傳鏡像--> <!--提示沒有身份驗證,上傳不了--> no basic auth credentials <!--登錄私有鏡像倉庫,通過身份驗證即可上傳--> docker login 192.168.100.10:5000 Username: bob <!--輸入bob--> Password: <!--輸入密碼--> <!--再次上傳鏡像到私有倉庫--> docker push 192.168.100.10:5000/image/tomcat:1.0 <!--docker客戶端不通過身份驗證直接下載私有倉庫中的鏡像直接被拒絕--> docker pull 192.168.100.10:5000/image/tomcat:1.0 Error response from daemon: Get http://192.168.100.10:5000/v2/image/tomcat/manifests/1.0: no basic auth credentials <!--登錄私有倉庫,通過身份驗證--> docker login 192.168.100.10:5000 Username: bob <!--輸入bob--> Password: <!--輸入密碼--> docker pull 192.168.100.10:5000/image/tomcat:1.0 <!--下載私有倉庫中的鏡像--> <!--查看docker客戶端鏡像--> docker images
修改tag (以hello-world為例)
拉取鏡像 docker pull hello-world 修改鏡像 docker tag hello-world hub.test.com:5000/hello-world:1.0 上傳、刪除、再下載鏡像,刪除后能下載成功 docker images docker push hub.test.com:5000/hello-world:1.0 docker rmi hub.test.com:5000/hello-world:1.0 docker images docker pull hub.test.com:5000/hello-world:1.0 docker images
查看倉庫鏡像
curl hub.test.com:5000/v2/_catalog
registry開啟刪除
#查看默認配置 docker exec -it registry sh -c 'cat /etc/docker/registry/config.yml' #開啟刪除(添加 delete: enabled: true) docker exec -it registry sh -c "sed -i '/storage:/a\ delete:' /etc/docker/registry/config.yml" docker exec -it registry sh -c "sed -i '/delete:/a\ enabled: true' /etc/docker/registry/config.yml" #重啟 docker restart registry
查詢、刪除鏡像
#查詢鏡像 curl <倉庫地址>/v2/_catalog #查詢鏡像tag(版本) curl <倉庫地址>/v2/<鏡像名>/tags/list #刪除鏡像API curl -I -X DELETE "<倉庫地址>/v2/<鏡像名>/manifests/<鏡像digest_hash>" #獲取鏡像digest_hash curl <倉庫地址>/v2/<鏡像名>/manifests/<tag> \ --header "Accept: application/vnd.docker.distribution.manifest.v2+json"
上述就是小編為大家分享的如何進行docker registry 私有倉庫的搭建了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。