Docker搭建私有倉(cāng)庫(kù)的實(shí)現(xiàn)步驟
背景介紹
Docker registry是存儲(chǔ)Docker image的倉(cāng)庫(kù),運(yùn)行push、pull、 search 時(shí),是通過Docker daemon與docker registry通信。
Docker Hub(Docker埠,內(nèi)有大量存儲(chǔ)庫(kù)或叫倉(cāng)庫(kù))是Docker提供的一項(xiàng)服務(wù),用于查找和與您的團(tuán)隊(duì)共享容器鏡像。它是世界上最大的容器鏡像存儲(chǔ)庫(kù),擁有一系列內(nèi)容源,包括容器社區(qū)開發(fā)人員、開放源代碼項(xiàng)目和獨(dú)立軟件供應(yīng)商(ISV)在容器中構(gòu)建和分發(fā)代碼。
使用私有倉(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)人員使用。
因?yàn)閐ockerHub公共倉(cāng)庫(kù)是外網(wǎng)的,所以訪問就特別慢,所以一般公司都會(huì)搭建私人的鏡像倉(cāng)庫(kù)來保存鏡像。一臺(tái)服務(wù)上用docker開啟一個(gè)私有倉(cāng)庫(kù)的鏡像,后續(xù)其他的docket服務(wù)器都將鏡像保存在這個(gè)私有的倉(cāng)庫(kù)
1 設(shè)置私有鏡像倉(cāng)庫(kù)
# 下載鏡像 docker pull registry # 啟動(dòng)鏡像 docker run -itd -v /home/wuzhibin/docker/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest -itd:在容器中打開一個(gè)偽終端進(jìn)行交互操作,并在后臺(tái)運(yùn)行 -v:把宿主機(jī)的/home/wuzhibin/docker/registry目錄綁定到容器/var/lib/registry來實(shí)現(xiàn)數(shù)據(jù)的持久化; -p:映射端口;訪問宿主機(jī)的5000端口就訪問到registry容器的服務(wù)了 --restart=always: 這是重啟的策略,在容器退出時(shí)總是重啟容器 --name registry: 創(chuàng)建容器命名為registry
拉起官方鏡像,在一臺(tái)搭建鏡像倉(cāng)庫(kù)的容器,并將容器的數(shù)據(jù)盤映射本地?cái)?shù)據(jù)持久化,最終的目的是將設(shè)置為私有的鏡像倉(cāng)庫(kù)保存鏡像。
2 添加鏡像倉(cāng)庫(kù)
# 在其他的服務(wù)上設(shè)置的鏡像倉(cāng)庫(kù)地址為私倉(cāng)地址
vim /etc/docker/daemon.json
{
"insecure-registries": ["192.168.1.200:5000"],
"registry-mirrors": ["https://zh7ton3p.mirror.aliyuncs.com"]
}
systemctl daemon-reload
systemctl restart docker
# insecure-registries 為上一步開啟的私有倉(cāng)庫(kù)地址
# registry-mirrors 為阿里云鏡像加速地址
# 修改docker配置之后一定要重新啟動(dòng)docker
# 推送鏡像到私倉(cāng)
# 拉取nginx 測(cè)試鏡像
docker pull nginx
# 打上私倉(cāng)標(biāo)簽,如果想推送到私倉(cāng)必須打上私倉(cāng)的標(biāo)簽,應(yīng)該為默認(rèn)是推送到公共倉(cāng)庫(kù)的。
docker tag mginx:latest 192.168.1.200:500/nginx:v1
# 查看鏡像名
docker images
# 推送私倉(cāng),192.168.1.200:5000/nginx:v1為上一步打上鏡像名的鏡像
docker push 192.168.1.200:5000/nginx:v1
# 查看私倉(cāng)鏡像倉(cāng)庫(kù)
curl http://192.168.1.200:5000/v2/_catalog
# 結(jié)果為{"repositories":["nginx"]}表面
# 查看私倉(cāng)的鏡像版本
curl http://192.168.118.16:5000/v2/ubuntu/tags/list在其他的服務(wù)上設(shè)置的鏡像倉(cāng)庫(kù)地址為私倉(cāng)地址就可以通過私倉(cāng)拉起分發(fā)布鏡像了, 拉取私倉(cāng)的鏡像不僅僅要設(shè)置鏡像倉(cāng)庫(kù)的地址,另外鏡像上也要打上私倉(cāng)的標(biāo)簽,不能默認(rèn)會(huì)從公共倉(cāng)庫(kù)拉起和發(fā)布
3 拉私倉(cāng)的鏡像
# 拉取私倉(cāng)的鏡像, 其他的服務(wù)器也需要和上一步一樣添加docker配置中添加私倉(cāng)地址 # 不加私倉(cāng)地址會(huì)默認(rèn)從公共倉(cāng)去拉起, docker pull 192.168.1.200:5000/nginx:v1 # 查看拉起的鏡像 docker images


到此這篇關(guān)于Docker搭建私有倉(cāng)庫(kù)的文章就介紹到這了,更多相關(guān)Docker搭建私有倉(cāng)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker中運(yùn)行PostgreSQL并推薦幾款連接工具
PostgreSQL支持大部分的SQL標(biāo)準(zhǔn)并且提供了很多其他現(xiàn)代特性,如復(fù)雜查詢、外鍵、觸發(fā)器、視圖、事務(wù)完整性、多版本并發(fā)控制等,今天給大家介紹Docker中運(yùn)行PostgreSQL并推薦幾款連接工具,需要的朋友參考下吧2021-06-06
Docker跨主機(jī)網(wǎng)絡(luò)(overlay)的實(shí)現(xiàn)
這篇文章主要介紹了Docker跨主機(jī)網(wǎng)絡(luò)(overlay)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
Docker 教程之鏡像創(chuàng)建及修改詳細(xì)介紹
這篇文章主要介紹了Docker 教程之鏡像創(chuàng)建及修改詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2016-12-12
docker配置skywalking 監(jiān)控springcloud應(yīng)用的詳細(xì)步驟
本文分步驟給大家講解docker配置skywalking 監(jiān)控springcloud應(yīng)用的方法,感興趣的朋友一起看看吧2025-04-04
docker搭建dnsmasq服務(wù)的實(shí)現(xiàn)
本文將指導(dǎo)讀者如何使用Docker搭建DNSmasq服務(wù),通過簡(jiǎn)單的步驟和詳細(xì)的說明,幫助讀者快速在Docker環(huán)境中部署DNSmasq,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01

