一、搭建本地私有倉庫
有時(shí)候使用Docker Hub這樣的公共倉庫可能不方便,這種情況下用戶可以使用registry創(chuàng)建一個(gè)本地倉庫供私人使用,這點(diǎn)跟Maven的管理類似。
使用私有倉庫有許多優(yōu)點(diǎn):
1)節(jié)省網(wǎng)絡(luò)帶寬,針對(duì)于每個(gè)鏡像不用每個(gè)人都去中央倉庫上面去下載,只需要從私有倉庫中下載即可;
2)提供鏡像資源利用,針對(duì)于公司內(nèi)部使用的鏡像,推送到本地的私有倉庫中,以供公司內(nèi)部相關(guān)人員使用。
1、首先下載registry 鏡像
docker pull registry
Docker 官方提供了一個(gè)搭建私有倉庫的鏡像 registry (注冊(cè)服務(wù)器),只需把鏡像下載下來,運(yùn)行容器并暴露5000端口,就可以使用了
目前Docker Registry已經(jīng)升級(jí)到了v2,最新版的Docker已不再支持v1。Registry v2使用Go語言編寫,在性能和安全性上做了很多優(yōu)化,重新設(shè)計(jì)了鏡像的存儲(chǔ)格式。如果需要安裝registry v2,只需下載registry:2.2即可。Docker官方提供的工具docker-registry可以用于構(gòu)建私有的鏡像倉庫
2、在daemon.json文件中添加私有鏡像倉庫地址
vim /etc/ docker/daemon.json
{
"insecure-registries": ["192.168.2.200:5000"],
#添加,注意用逗號(hào)結(jié)尾
"registry-mirrors": ["https://6ijb8ubo.mirror.aliyuncs.com"]
}
systemctl restart docker.service
3、運(yùn)行 registry 容器
docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
===================================================
-itd: 在容器中打開一個(gè)偽終端進(jìn)行交互操作,并在后臺(tái)運(yùn)行
-v: 把宿主機(jī)的/data/registry目錄綁定到容器/var/lib/registry目錄(這個(gè)目錄是registry容器中存放鏡像文件的目錄),來實(shí)現(xiàn)數(shù)據(jù)的持久化;
在容器中啟動(dòng)私有鏡像倉庫并將私有倉庫的存儲(chǔ)目錄掛載到宿主機(jī)指定目錄中,這樣做的目的是,如果容器被刪除了,存儲(chǔ)在容器中的鏡像就不會(huì)被刪掉(默認(rèn)情況下如果容器被刪除,則存放于容器中的鏡像也會(huì)丟失
)
-p:映射端口;訪問宿主機(jī)的5000端口就訪問到registry容器的服務(wù)了
--restart=always: 這是重啟的策略,在容器退出時(shí)總是重啟容器
--name registry: 創(chuàng)建容器命名為registry
registry:latest:這個(gè)是剛才pull下來的鏡像
====================================================
Docker容器的重啟策略如下:
no:默認(rèn)策略,在容器退出時(shí)不重啟容器
on-failure: 在容器非正常退出時(shí)(退出狀態(tài)非0),才會(huì)重啟容器
on-failure:3 :在容器非正常退出時(shí)重啟容器,最多重啟3次
always: 在容器退出時(shí)總是重啟容器
unless-stopped: 在容器退出時(shí)總是重啟容器,但是不考慮在Docker守護(hù)進(jìn)程啟動(dòng)時(shí)就已經(jīng)停止了的容器
4、為鏡像打標(biāo)簽
docker tag centos:7 192.168.2.200:5000/centos:v1
如果不對(duì)私有倉庫命名的話,默認(rèn)走的是公共倉庫(docker hub),所以需要命名鏡像。
私有倉庫鏡像的命名規(guī)則:宿主機(jī)ip地址:端口號(hào)/xxxx(需要更改的名稱)
注意:當(dāng)你對(duì)源鏡像進(jìn)行命名后,命名后的鏡像名稱也視為一個(gè)標(biāo)簽,因?yàn)閕d號(hào)是相同的。如果當(dāng)源鏡像刪除,命名后的鏡像依然會(huì)存在,因?yàn)閯h除的是一個(gè)標(biāo)簽。
5、上傳到私有倉庫
docker push 192.168.2.200:5000/centos:v1
6、列出私有倉庫的所有鏡像
curl http://192.168.2.200:5000/v2/_catalog
7、列出私有倉庫的centos鏡像有哪些tag
curl http://192.168.2.200:5000/v2/centos/tags/list
文章來源:http://www.zghlxwxcb.cn/news/detail-598638.html
8、先刪除原有的centos的鏡像,再測(cè)試私有倉庫下載
docker rmi -f 8652b9f0cb4c
docker pull 192.168.2.200:5000/centos:v1
文章來源地址http://www.zghlxwxcb.cn/news/detail-598638.html
到了這里,關(guān)于Docker 搭建本地私有倉庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!