Docker怎么部署私有倉(cāng)庫(kù)-創(chuàng)新互聯(lián)

這篇文章主要介紹“Docker怎么部署私有倉(cāng)庫(kù)”,在日常操作中,相信很多人在Docker怎么部署私有倉(cāng)庫(kù)問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Docker怎么部署私有倉(cāng)庫(kù)”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到安州網(wǎng)站設(shè)計(jì)與安州網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋安州地區(qū)。

倉(cāng)庫(kù)(Repository)是集中存放鏡像的地方。
一個(gè)容易混淆的概念是注冊(cè)服務(wù)器(registry)。實(shí)際上注冊(cè)服務(wù)器是管理倉(cāng)庫(kù)的具體服務(wù)器,每個(gè)服務(wù)器上可以有多個(gè)倉(cāng)庫(kù),而每個(gè)倉(cāng)庫(kù)下面有多個(gè)鏡像。從這方面來(lái)說(shuō),倉(cāng)庫(kù)可以被認(rèn)為是一個(gè)具體的項(xiàng)目或目錄。例如對(duì)于倉(cāng)庫(kù)地址docker.sina.com.cn/centos:centos7來(lái)說(shuō),docekr.sian.com.cn是注冊(cè)服務(wù)器地址,centos是倉(cāng)庫(kù)名,centos7是倉(cāng)庫(kù)的tag(標(biāo)簽)。

Docker Hub 官方倉(cāng)庫(kù)
目前docker官方維護(hù)了一個(gè)公共倉(cāng)庫(kù),Docker Hub,其中已經(jīng)包括了超過(guò)1500的鏡像。大部分需求,都可以通過(guò)在Docker Hub中直接下載鏡像來(lái)實(shí)現(xiàn)。

部署私有倉(cāng)庫(kù):

1, 通過(guò)官方的registry鏡像來(lái)部署私有倉(cāng)庫(kù):

項(xiàng)目環(huán)境:
兩臺(tái)主機(jī)(centos7):docker01:172.16.1.30
docker02:172.16.1.40**

docker01:
(1)基于registry鏡像運(yùn)行一個(gè)容器:
[root@sqm-docker01 ~]#  docker run -d --name registry  --restart=always -p 5000:5000 -v /data/registry:/var/lib/registry registry:latest

參數(shù)說(shuō)明:
#registry服務(wù)默認(rèn)監(jiān)聽(tīng)的是5000端口
-v = --volume 數(shù)據(jù)卷,進(jìn)行一個(gè)掛載:宿主機(jī):容器內(nèi)

(2)命名私有倉(cāng)庫(kù)鏡像:
##如果不對(duì)私有倉(cāng)庫(kù)命名的話,默認(rèn)走的是公共倉(cāng)庫(kù)(docker hub),所以需要命名鏡像。
私有倉(cāng)庫(kù)鏡像的命名規(guī)則:宿主機(jī)ip地址:端口號(hào)/xxxx(需要更改的名稱)
以nignx鏡像為例,下載nginx鏡像:
[root@sqm-docker01 ~]# docker pull nginx

[root@sqm-docker01 ~]# docker tag  nginx:latest 172.16.1.30:5000/nginx:latest

注意:當(dāng)你對(duì)源鏡像(nginx:latest)進(jìn)行命名后,命名后的鏡像名稱也視為一個(gè)標(biāo)簽,因?yàn)閕d號(hào)是相同的。
如果當(dāng)源鏡像(nginx:latest)刪除,命名后的鏡像依然會(huì)存在,因?yàn)閯h除的是一個(gè)標(biāo)簽。

(3)修改docker主配置文件:
[root@sqm-docker01 ~]# vim /usr/lib/systemd/system/docker.service

指定本地倉(cāng)庫(kù)的ip地址+端口號(hào):
Docker怎么部署私有倉(cāng)庫(kù)

重新加載進(jìn)程并重啟docker服務(wù):

[root@sqm-docker01 ~]# systemctl daemon-reload
[root@sqm-docker01 ~]# systemctl restart docker

(4)將本地鏡像push到私有倉(cāng)庫(kù)中:
[root@sqm-docker01 ~]# docker push 172.16.1.30:5000/nginx:latest
Docker怎么部署私有倉(cāng)庫(kù)

//查看私有倉(cāng)庫(kù)中的鏡像:

[root@sqm-docker01 ~]# curl 172.16.1.30:5000/v2/_catalog
{"repositories":["nginx"]}

//查看倉(cāng)庫(kù)中鏡像的標(biāo)簽:

[root@sqm-docker01 ~]#  curl 172.16.1.30:5000/v2/nginx/tags/list
{"name":"nginx","tags":["latest"]}

//如果需要?jiǎng)h除私有倉(cāng)庫(kù)中的鏡像,因?yàn)槲矣袊L試用官方的第三方工具(deletedockerregistryimage)來(lái)進(jìn)行刪除鏡像,但最終并沒(méi)有把倉(cāng)庫(kù)中的鏡像刪除。所以我采取在運(yùn)行registry時(shí)掛載在本地的目錄[/data/registry]中,找到指定的鏡像存放的目錄來(lái)進(jìn)行刪除。

[root@sqm-docker01 ~]# cd /data/registry/docker/registry/v2/
[root@sqm-docker01 v2]# ls
blobs  repositories
[root@sqm-docker01 v2]# cd repositories/
[root@sqm-docker01 repositories]# ls
nginx
[root@sqm-docker01 repositories]# rm -rf nginx/
刪除后再次查看私有倉(cāng)庫(kù)中的鏡像是否還存在:
[root@sqm-docker01 ~]# curl http://172.16.1.30:5000/v2/_catalog
{"repositories":[]}

可以看到倉(cāng)庫(kù)中的鏡像已被成功刪除。

docker02:
連接docker01,從docker01的倉(cāng)庫(kù)中拉取鏡像:(記得先把鏡像上傳到私有倉(cāng)庫(kù)中)
(1)修改docker的配置文件:
[root@sqm-docker02 ~]# vim /usr/lib/systemd/system/docker.service
Docker怎么部署私有倉(cāng)庫(kù)

重啟docker服務(wù):

[root@sqm-docker02 ~]# systemctl daemon-reload
[root@sqm-docker02 ~]# systemctl restart docker

(2)從私有倉(cāng)庫(kù)中拉取鏡像:

[root@sqm-docker02 ~]# docker pull 172.16.1.30:5000/nginx  #使用pull命令進(jìn)行拉取

Docker怎么部署私有倉(cāng)庫(kù)

(3)部署nginx服務(wù):

[root@sqm-docker02 ~]# mkdir html
[root@sqm-docker02 ~]# echo "welcome to nginx web" > html/index.html

[root@sqm-docker02 ~]# docker run -itd --name nginx -p  80:80 -v /root/html:/usr/share/nginx/html 172.16.1.30:5000/nginx

Docker怎么部署私有倉(cāng)庫(kù)

訪問(wèn)nginx頁(yè)面:
Docker怎么部署私有倉(cāng)庫(kù)

2,部署Harbor(哈勃)私有倉(cāng)庫(kù):

registry是官方的一個(gè)私有倉(cāng)庫(kù),而harbor是第三方的一個(gè)私有倉(cāng)庫(kù)。

(1)下載compose:
安裝依賴:
[root@sqm-docker01 ~]# yum -y install yum-utils device-mapper-persistent-data lvm2
從github官網(wǎng)上進(jìn)行下載:
URL:https://github.com/docker/compose/releases
Docker怎么部署私有倉(cāng)庫(kù)
Docker怎么部署私有倉(cāng)庫(kù)

[root@sqm-docker01 ~]# curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-uname -s-uname -m-o /usr/local/bin/docker-compose

[root@sqm-docker01 ~]#  chmod +x /usr/local/bin/docker-compose

查看compose版本:

[root@sqm-docker01 ~]# docker-compose -version
docker-compose version 1.24.0, build 0aa59064

(2)下載harbor安裝包并進(jìn)行解壓:

[root@sqm-docker01 ~]# tar zxf harbor-offline-installer-v1.7.4.tgz -C /usr/local/
[root@sqm-docker01 ~]# cd /usr/local/harbor/

Docker怎么部署私有倉(cāng)庫(kù)

編寫harbor配置文件:
[root@sqm-docker01 harbor]# vim harbor.cfg
Docker怎么部署私有倉(cāng)庫(kù)
執(zhí)行腳本:
[root@sqm-docker01 harbor]# ./install.sh
Docker怎么部署私有倉(cāng)庫(kù)

進(jìn)入網(wǎng)站:用戶admin,密碼:Harbor12345(在harbor配置文件中可以查看到)
URL:http://172.16.1.30
[root@sqm-docker01 harbor]#  vim harbor.cfg

Docker怎么部署私有倉(cāng)庫(kù)

Docker怎么部署私有倉(cāng)庫(kù)
登陸界面如下:
Docker怎么部署私有倉(cāng)庫(kù)

(3)我們?cè)诰W(wǎng)頁(yè)上新建一個(gè)項(xiàng)目:
Docker怎么部署私有倉(cāng)庫(kù)
Docker怎么部署私有倉(cāng)庫(kù)
Docker怎么部署私有倉(cāng)庫(kù)

##修改docker配置文件:
[root@sqm-docker01 ~]# vim /usr/lib/systemd/system/docker.service
Docker怎么部署私有倉(cāng)庫(kù)

//重新加載docker:

[root@sqm-docker01 ~]# systemctl daemon-reload
[root@sqm-docker01 ~]# systemctl restart docker

//重啟compose:
注意:因?yàn)閯倓傄呀?jīng)重啟了docker服務(wù),所以我們需要將所有容器給重新啟動(dòng)。

[root@sqm-docker01 harbor]# docker ps -a -q | xargs docker start

[root@sqm-docker01 harbor]# docker-compose  stop

Docker怎么部署私有倉(cāng)庫(kù)
[root@sqm-docker01 harbor]# docker-compose  start
Docker怎么部署私有倉(cāng)庫(kù)

(4)在本地終端上連接harbor:
[root@sqm-docker01 harbor]# docker login  -u admin -p Harbor12345 172.16.1.30:80
Docker怎么部署私有倉(cāng)庫(kù)

(5)將需要上傳到harbor私有倉(cāng)庫(kù)的鏡像進(jìn)行push:
#例如將本地的一個(gè)nginx鏡像命令并且push到倉(cāng)庫(kù):
[root@sqm-docker01 harbor]# docker tag nginx:latest  172.16.1.30:80/sunqiuming/nginx:latest

[root@sqm-docker01 harbor]# docker push 172.16.1.30:80/sunqiuming/nginx:latest  #push到剛才在網(wǎng)頁(yè)上創(chuàng)建的項(xiàng)目
Docker怎么部署私有倉(cāng)庫(kù)

push成功后,我們?cè)诰W(wǎng)頁(yè)上進(jìn)行查看:
Docker怎么部署私有倉(cāng)庫(kù)
Docker怎么部署私有倉(cāng)庫(kù)

docker02進(jìn)行連接harbor:
(1)為了在docker02不再進(jìn)入配置文件進(jìn)行修改,將docker01上的docker配置文件拷貝給docker02:
#免密登陸:
[root@sqm-docker01 ~]# ssh-keygen
Docker怎么部署私有倉(cāng)庫(kù)
[root@sqm-docker01 ~]# ssh-copy-id  172.16.1.40

[root@sqm-docker01 ~]# scp /usr/lib/systemd/system/docker.service  root@172.16.1.40:/usr/lib/systemd/system/docker.service

重啟docker服務(wù):
[root@sqm-docker02 ~]# systemctl daemon-reload
[root@sqm-docker02 ~]# systemctl restart docker

(2)連接harbor私有倉(cāng)庫(kù):
Docker怎么部署私有倉(cāng)庫(kù)

(3)從harbor私有倉(cāng)庫(kù)中拉取鏡像:
[root@sqm-docker02 ~]# docker pull 172.16.1.30:80/sunqiuming/nginx  #指向的是剛才上傳鏡像的倉(cāng)庫(kù)中進(jìn)行拉取。
Docker怎么部署私有倉(cāng)庫(kù)
(4)最后在基于該鏡像,運(yùn)行nginx服務(wù)并測(cè)試網(wǎng)頁(yè):
[root@sqm-docker02 ~]# docker run -d --name nginx -p 80:80 172.16.1.30:80/sunqiuming/nginx:latest
Docker怎么部署私有倉(cāng)庫(kù)

到此,關(guān)于“Docker怎么部署私有倉(cāng)庫(kù)”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)站題目:Docker怎么部署私有倉(cāng)庫(kù)-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)鏈接:http://bm7419.com/article26/gjsjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、網(wǎng)站維護(hù)、ChatGPTApp設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作