docker?registry?私有倉(cāng)庫(kù)的搭建過(guò)程
摘要
隨著docker使用的鏡像越來(lái)越多,就需要有一個(gè)保存鏡像的地方,這就是倉(cāng)庫(kù)。目前常用的兩種倉(cāng)庫(kù):公共倉(cāng)庫(kù)和私有倉(cāng)庫(kù)。最方便的就是使用公共倉(cāng)庫(kù)上傳和下載,下載公共倉(cāng)庫(kù)的鏡像是不需要注冊(cè)的,但是上傳時(shí),是需要注冊(cè)的。私有倉(cāng)庫(kù)最常用的就是Registry、Harbor兩種,那接下來(lái)詳細(xì)介紹如何搭建registry私有倉(cāng)庫(kù)。
一、環(huán)境準(zhǔn)備
兩臺(tái)CentOS7.4,一臺(tái)為Docker私有倉(cāng)庫(kù);另一臺(tái)為Docker客戶(hù)端,測(cè)試使用;
二、配置registry私有倉(cāng)庫(kù)
# <!--docker宿主機(jī)開(kāi)啟路由功能-->
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"]}
<!--重新啟動(dòng)docker服務(wù)-->
systemctl reload docker
<!--查找registry鏡像-->
docker search registry
docker pull registry
<!--registry鏡像可以直接先pull下來(lái),也可以不下載,根據(jù)自己情況而定-->
docker run -d -p 5000:5000 --name registry --restart=always -v /opt/registry:/var/lib/registry registry
<!--查看docker運(yùn)行的容器-->
docker ps
<!--查看docker所有鏡像-->
docker images
<!--配置docker服務(wù)支持registry服務(wù)-->
vim /etc/docker/daemon.json
{"registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"],
"insecure-registries":["192.168.100.10:5000"] <!--添加此行-->
}
<!--重新啟動(dòng)docker服務(wù)-->
systemctl reload docker
docker info




三、上傳與下載鏡像
# 給鏡像打標(biāo)簽
docker tag mysql 192.168.25.140:5000/mysql
# 上傳的鏡像
docker push 192.168.25.140:5000/mysql
<!--客戶(hù)端安裝docker服務(wù),配置鏡像加速-->
<!--配置docker支持registry服務(wù) -->
vim /etc/docker/daemon.json
{"registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"],
"insecure-registries":["192.168.100.10:5000"] <!--添加此行-->
}
<!--重新啟動(dòng)docker服務(wù)-->
systemctl restart docker
<!--客戶(hù)端下載私有倉(cāng)庫(kù)中的鏡像-->
docker pull 192.168.25.140:5000/mysql
docker images <!--查看鏡像是否下載成功-->

四、配置registry加載身份驗(yàn)證
但是現(xiàn)在存在一個(gè)問(wèn)題,如果這也部署的話(huà)企業(yè)內(nèi)部所有人員皆可訪問(wèn)我們的私有倉(cāng)庫(kù),為了安全起見(jiàn),接下來(lái)為registry添加一個(gè)身份驗(yàn)證,只有通過(guò)了身份驗(yàn)證才可以上傳或者下載私有倉(cāng)庫(kù)中的鏡像。
<!--安裝加密工具h(yuǎn)ttpd-tools--> yum -y install httpd-tools <!--創(chuàng)建存放驗(yàn)證密鑰目錄--> mkdir /opt/registry-auth <!--配置registry身份驗(yàn)證數(shù)據(jù)庫(kù)--> <!--"-Bbn”參數(shù)解釋?zhuān)築強(qiáng)制密碼加密;b在命令中輸入密碼,不提示輸入密碼;n不更新密鑰文件--> htpasswd -Bbn bob pwd@123 > /opt/registry-auth/htpasswd <!--刪除此服務(wù)器上的所有容器,接下來(lái)重新生成一個(gè)需要身份驗(yàn)證的私有倉(cāng)庫(kù)容器--> 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 <!--重新運(yùn)行一個(gè)支持身份驗(yàn)證的registry私有鏡像倉(cāng)庫(kù)容器--> docker tag tomcat:latest 192.168.100.10:5000/image/tomcat:1.0 docker push 192.168.100.10:5000/image/tomcat:1.0 <!--測(cè)試不通過(guò)身份驗(yàn)證是否可以往私有倉(cāng)庫(kù)上傳鏡像--> <!--提示沒(méi)有身份驗(yàn)證,上傳不了--> no basic auth credentials <!--登錄私有鏡像倉(cāng)庫(kù),通過(guò)身份驗(yàn)證即可上傳--> docker login 192.168.100.10:5000 Username: bob <!--輸入bob--> Password: <!--輸入密碼--> <!--再次上傳鏡像到私有倉(cāng)庫(kù)--> docker push 192.168.100.10:5000/image/tomcat:1.0 <!--docker客戶(hù)端不通過(guò)身份驗(yàn)證直接下載私有倉(cāng)庫(kù)中的鏡像直接被拒絕--> 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 <!--登錄私有倉(cāng)庫(kù),通過(guò)身份驗(yàn)證--> docker login 192.168.100.10:5000 Username: bob <!--輸入bob--> Password: <!--輸入密碼--> docker pull 192.168.100.10:5000/image/tomcat:1.0 <!--下載私有倉(cāng)庫(kù)中的鏡像--> <!--查看docker客戶(hù)端鏡像--> docker images
五、 docker registry 私有倉(cāng)庫(kù)查詢(xún)、刪除
修改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
查看倉(cāng)庫(kù)鏡像
curl hub.test.com:5000/v2/_catalog
registry開(kāi)啟刪除
#查看默認(rèn)配置 docker exec -it registry sh -c 'cat /etc/docker/registry/config.yml' #開(kāi)啟刪除(添加 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
查詢(xún)、刪除鏡像
#查詢(xún)鏡像
curl <倉(cāng)庫(kù)地址>/v2/_catalog
#查詢(xún)鏡像tag(版本)
curl <倉(cāng)庫(kù)地址>/v2/<鏡像名>/tags/list
#刪除鏡像API
curl -I -X DELETE "<倉(cāng)庫(kù)地址>/v2/<鏡像名>/manifests/<鏡像digest_hash>"
#獲取鏡像digest_hash
curl <倉(cāng)庫(kù)地址>/v2/<鏡像名>/manifests/<tag> \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json"博文參考
http://www.dhdzp.com/article/187864.htm
到此這篇關(guān)于docker registry 私有倉(cāng)庫(kù)的文章就介紹到這了,更多相關(guān)docker registry 私有倉(cāng)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- docker-maven-plugin打包鏡像并上傳到私有倉(cāng)庫(kù)
- 基于Harbor構(gòu)建docker私有倉(cāng)庫(kù)的方法
- docker建立私有倉(cāng)庫(kù)的過(guò)程
- Docker私有倉(cāng)庫(kù)Harbor介紹和部署方法詳解
- 如何搭建配置Docker私有倉(cāng)庫(kù)的實(shí)現(xiàn)步驟
- Docker容器搭建本地私有倉(cāng)庫(kù)詳情
- Docker容器harbor私有倉(cāng)庫(kù)部署和管理
- 一文教會(huì)你如何高效地搭建Docker私有倉(cāng)庫(kù)
- docker搭建本地私有倉(cāng)庫(kù)的實(shí)現(xiàn)
- Docker搭建私有倉(cāng)庫(kù)的實(shí)現(xiàn)步驟
相關(guān)文章
使用Docker部署Python Flask應(yīng)用的完整教程
Docker是一種開(kāi)源的容器化平臺(tái),可以將應(yīng)用程序及其依賴(lài)項(xiàng)打包成一個(gè)獨(dú)立的容器,實(shí)現(xiàn)快速部署和跨平臺(tái)運(yùn)行,本文將詳細(xì)介紹如何使用Docker來(lái)部署Python Flask應(yīng)用程序,幫助開(kāi)發(fā)者更高效地構(gòu)建和部署應(yīng)用,需要的朋友可以參考下2024-06-06
docker鏡像下載到本地并導(dǎo)入其他服務(wù)器方式
這篇文章主要介紹了docker鏡像下載到本地并導(dǎo)入其他服務(wù)器方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04
Docker中Dockerfile之容器中運(yùn)行MyEclipse搭建的JavaWeb項(xiàng)目
本篇文章主要介紹了Docker中Dockerfile之容器中運(yùn)行MyEclipse搭建的JavaWeb項(xiàng)目,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02
Docker鏡像下載的常見(jiàn)問(wèn)題及解決辦法
在使用Docker時(shí),用戶(hù)常遇到下載鏡像錯(cuò)誤,如TLS握手超時(shí)、請(qǐng)求取消等,主要由網(wǎng)絡(luò)狀況、配置問(wèn)題或DockerHub服務(wù)導(dǎo)致,本文就來(lái)介紹了一下幾種解決方法,感興趣的可以了解一下2024-10-10
cordon節(jié)點(diǎn)drain驅(qū)逐節(jié)點(diǎn)delete節(jié)點(diǎn)詳解
這篇文章主要為大家介紹了cordon節(jié)點(diǎn)drain驅(qū)逐節(jié)點(diǎn)delete節(jié)點(diǎn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11

