docker搭建本地私有倉(cāng)庫(kù)的實(shí)現(xiàn)
有時(shí)候使用Docker Hub這樣的公共倉(cāng)庫(kù)可能不方便,這種情況下用戶可以使用registry創(chuàng)建一個(gè)本地倉(cāng)庫(kù)供私人使用,這點(diǎn)跟Maven的管理類似。
使用私有倉(cāng)庫(kù)有許多優(yōu)點(diǎn):
1)節(jié)省網(wǎng)絡(luò)帶寬,針對(duì)于每個(gè)鏡像不用每個(gè)人都去中央倉(cāng)庫(kù)上面去下載,只需要從私有倉(cāng)庫(kù)中下載即可;
2)提供鏡像資源利用,針對(duì)于公司內(nèi)部使用的鏡像,推送到本地的私有倉(cāng)庫(kù)中,以供公司內(nèi)部相關(guān)人員使用。
1、首先下載registry 鏡像
docker pull registry
Docker 官方提供了一個(gè)搭建私有倉(cāng)庫(kù)的鏡像 registry (注冊(cè)服務(wù)器),只需把鏡像下載下來(lái),運(yùn)行容器并暴露5000端口,就可以使用了
目前Docker Registry已經(jīng)升級(jí)到了v2,最新版的Docker已不再支持v1。Registry v2使用Go語(yǔ)言編寫,在性能和安全性上做了很多優(yōu)化,重新設(shè)計(jì)了鏡像的存儲(chǔ)格式。如果需要安裝registry v2,只需下載registry:2.2即可。Docker官方提供的工具docker-registry可以用于構(gòu)建私有的鏡像倉(cāng)庫(kù)

2、在daemon.json文件中添加私有鏡像倉(cāng)庫(kù)地址
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: 在容器中打開(kāi)一個(gè)偽終端進(jìn)行交互操作,并在后臺(tái)運(yùn)行
-v: 把宿主機(jī)的/data/registry目錄綁定到容器/var/lib/registry目錄(這個(gè)目錄是registry容器中存放鏡像文件的目錄),來(lái)實(shí)現(xiàn)數(shù)據(jù)的持久化;
在容器中啟動(dòng)私有鏡像倉(cāng)庫(kù)并將私有倉(cāng)庫(kù)的存儲(chǔ)目錄掛載到宿主機(jī)指定目錄中,這樣做的目的是,如果容器被刪除了,存儲(chǔ)在容器中的鏡像就不會(huì)被刪掉(默認(rèn)情況下如果容器被刪除,則存放于容器中的鏡像也會(huì)丟失)
-p:映射端口;訪問(wèn)宿主機(jī)的5000端口就訪問(wèn)到registry容器的服務(wù)了
--restart=always: 這是重啟的策略,在容器退出時(shí)總是重啟容器
--name registry: 創(chuàng)建容器命名為registry
registry:latest:這個(gè)是剛才pull下來(lái)的鏡像
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ì)私有倉(cāng)庫(kù)命名的話,默認(rèn)走的是公共倉(cāng)庫(kù)(docker hub),所以需要命名鏡像。
私有倉(cāng)庫(kù)鏡像的命名規(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)簽?! ?/p>

5、上傳到私有倉(cāng)庫(kù)
docker push 192.168.2.200:5000/centos:v1

6、列出私有倉(cāng)庫(kù)的所有鏡像
curl http://192.168.2.200:5000/v2/_catalog

7、列出私有倉(cāng)庫(kù)的centos鏡像有哪些tag
curl http://192.168.2.200:5000/v2/centos/tags/list

8、先刪除原有的centos的鏡像,再測(cè)試私有倉(cāng)庫(kù)下載
docker rmi -f 8652b9f0cb4c docker pull 192.168.2.200:5000/centos:v1

到此這篇關(guān)于docker搭建本地私有倉(cāng)庫(kù)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)docker搭建私有倉(cāng)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker部署nginx及nginx.conf文件配置方式
這篇文章主要介紹了docker部署nginx及nginx.conf文件配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
Rocky Linux 9.2下使用dnf安裝Docker全流程指南
Docker 是當(dāng)前最流行的容器化平臺(tái),本文以 Rocky Linux 9.2 為例,詳細(xì)介紹如何使用 dnf 命令安裝 Docker,完成配置并進(jìn)行基礎(chǔ)使用,希望對(duì)大家有所幫助2025-08-08
docker默認(rèn)路徑存儲(chǔ)不足解決過(guò)程
這篇文章主要給大家介紹了關(guān)于docker默認(rèn)路徑存儲(chǔ)不足的解決過(guò)程,Docker存儲(chǔ)空間不足的錯(cuò)誤通常表明Docker Daemon分配的本地磁盤空間用盡,文中通過(guò)代碼將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04
Docker安裝Maven私服Nexus3的實(shí)現(xiàn)步驟
本文主要介紹了Docker安裝Maven私服Nexus3的實(shí)現(xiàn)步驟,可以幫助開(kāi)發(fā)者搭建高效的依賴管理和分發(fā)環(huán)境,具有一定的參考價(jià)值,感興趣的可以了解一下2025-12-12
使用Docker部署IntelliJ IDEA(linuxserver/intellij-idea)的完整指南
在服務(wù)器或無(wú)界面 Linux 環(huán)境中使用 IntelliJ IDEA 一直是個(gè)痛點(diǎn),借助 Docker + linuxserver/intellij-idea 鏡像,我們可以非常方便地通過(guò)瀏覽器遠(yuǎn)程使用 IDEA,下面我們就來(lái)看看詳細(xì)部署指南吧2025-12-12
Docker啟動(dòng)PostgreSQL時(shí)創(chuàng)建多個(gè)數(shù)據(jù)庫(kù)的解決方案
這篇文章主要介紹了Docker啟動(dòng)PostgreSQL時(shí)創(chuàng)建多個(gè)數(shù)據(jù)庫(kù)的解決方案,重點(diǎn)給大家介紹如何把shell/sql腳本放入/docker-entrypoint-initdb.d/目錄中,讓容器啟動(dòng)的時(shí)候自動(dòng)執(zhí)行創(chuàng)建2021-06-06
Docker為網(wǎng)絡(luò)bridge模式指定容器ip的方法
Docker在創(chuàng)建容器時(shí)有四種網(wǎng)絡(luò)模式,bridge為默認(rèn)不需要用--net去指定,其他三種模式需要在創(chuàng)建容器時(shí)使用--net去指定。那Docker為網(wǎng)絡(luò)bridge模式指定容器ip該如何實(shí)現(xiàn)呢?下面通過(guò)通過(guò)這篇文章一起看看吧,文中給出了詳細(xì)的示例代碼,有需要的可以參考借鑒。2016-11-11

