佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > Docker私有倉(cāng)庫(kù)的搭建和界面化管理詳解

Docker私有倉(cāng)庫(kù)的搭建和界面化管理詳解

熱門(mén)標(biāo)簽:美圖手機(jī) 阿里云 使用U盤(pán)裝系統(tǒng) 智能手機(jī) 網(wǎng)站建設(shè) 百度競(jìng)價(jià)點(diǎn)擊價(jià)格的計(jì)算公式 檢查注冊(cè)表項(xiàng) 硅谷的囚徒呼叫中心

一、關(guān)于Registry

官方的Docker hub是一個(gè)用于管理公共鏡像的好地方,我們可以在上面找到我們想要的鏡像,也可以把我們自己的鏡像推送上去。

但是有時(shí)候我們的使用場(chǎng)景需要我們擁有一個(gè)私有的鏡像倉(cāng)庫(kù)用于管理我們自己的鏡像。這個(gè)可以通過(guò)開(kāi)源軟件Registry來(lái)達(dá)成目的。

 Registry在github上有兩份代碼:老代碼庫(kù)和新代碼庫(kù)。老代碼是采用python編寫(xiě)的,存在pull和push的性能問(wèn)題,出到0.9.1版本之后就標(biāo)志為deprecated,不再繼續(xù)開(kāi)發(fā)。

 從2.0版本開(kāi)始就到在新代碼庫(kù)進(jìn)行開(kāi)發(fā),新代碼庫(kù)是采用go語(yǔ)言編寫(xiě),修改了鏡像id的生成算法、registry上鏡像的保存結(jié)構(gòu),大大優(yōu)化了pull和push鏡像的效率。

 官方在Docker hub上提供了registry的鏡像,我們可以直接使用該registry鏡像來(lái)構(gòu)建一個(gè)容器,搭建我們自己的私有倉(cāng)庫(kù)服務(wù)。

二、搭建Registry

首先搜索并拉取鏡像

docker search registry    # 建議先搜索一下,可以看一下相關(guān)的鏡像,說(shuō)不定哪天就有更好的鏡像了
docker pull registry    # 標(biāo)簽可以不加,因?yàn)楫?dāng)前最新就是v2

運(yùn)行一個(gè)registry容器

docker run -d \  # 后臺(tái)運(yùn)行
--name registry-srv \ # 指定容器名
--restart=always \ # 設(shè)置自動(dòng)啟動(dòng)
-p 5000:5000 \  # 端口映射宿主機(jī),通過(guò)宿主機(jī)地址訪問(wèn)
-v /opt/zwx-registry:/var/lib/registry \ # 把鏡像存儲(chǔ)目錄掛載到本地,方便管理和持久化
-v /opt/zwx-registry/srv-config.yml:/etc/docker/registry/config.yml \ # 把配置文件掛載到本地,方便修改和保存
registry

srv-config.yml內(nèi)容如下

標(biāo)紅delete參數(shù)設(shè)置為true,是為了讓倉(cāng)庫(kù)支持刪除功能。默認(rèn)沒(méi)有這個(gè)參數(shù),也就是不能刪除倉(cāng)庫(kù)鏡像。

version: 0.1
log:
 fields:
 service: registry
storage:
 delete:
 enabled: true
 cache:
 blobdescriptor: inmemory
 filesystem:
 rootdirectory: /var/lib/registry
http:
 addr: :5000
 headers:
 X-Content-Type-Options: [nosniff]
health:
 storagedriver:
 enabled: true
 interval: 10s
 threshold: 3

注冊(cè)https協(xié)議(否則push安全認(rèn)證過(guò)不去)

需要通過(guò)本地倉(cāng)庫(kù)下載鏡像,均需要配置  

vim /etc/docker/daemon.json        # 默認(rèn)無(wú)此文件,需自行添加,有則追加以下內(nèi)容。
{ "insecure-registries":["xx.xx.xx.xx:5000"] }  # 指定IP地址或域名

systemctl daemon-reload # 守護(hù)進(jìn)程重啟
systemctl restart docker # 重啟docker服務(wù)

鏡像上傳與下載

docker push xx.xx.xx.xx:5000/nginx  # 一定要注明倉(cāng)庫(kù)地址,否則會(huì)報(bào)錯(cuò)
docker pull xx.xx.xx.xx:5000/nginx

查看倉(cāng)庫(kù)鏡像信息

curl -XGET http://xx.xx.xx.xx:5000/v2/_catalog    # 查看倉(cāng)庫(kù)鏡像列表(也可以通過(guò)windows瀏覽器打開(kāi)查看)
curl -XGET http://xx.xx.xx.xx:5000/v2/image_name/tags/list  # 查看指定應(yīng)用鏡像tag

三、搭建Registry web

首先搜索并拉取鏡像

docker search docker-registry-web
docker pull hyper/docker-registry-web    # 這個(gè)鏡像用的人較多

運(yùn)行一個(gè)registry web容器

docker run -d \   # 后臺(tái)運(yùn)行
--name registry-web \ # 指定容器名
--restart=always \  # 設(shè)置自動(dòng)啟動(dòng)
-p 8000:8080 \   # 端口映射宿主機(jī),通過(guò)宿主機(jī)地址訪問(wèn)
-v /opt/zwx-registry/web-config.yml:/etc/config.yml \ # 把配置文件掛載到本地,方便修改和保存
hyper/docker-registry-web

web-config.yml文件內(nèi)容如下

標(biāo)紅readonly參數(shù)設(shè)置為false,是為了web頁(yè)面可以顯示刪除按鈕。默認(rèn)是true,只讀狀態(tài),沒(méi)有刪除按鈕,只能查看。

registry:
 # Docker registry url
 url: http://10.88.77.32:5000/v2
 # Docker registry fqdn
 name: localhost:5000
 # To allow image delete, should be false
 readonly: false
 auth:
 # Disable authentication
 enabled: false

部署完成后,瀏覽器打開(kāi)倉(cāng)庫(kù)UI地址即可查看到所有應(yīng)用鏡像


選擇任意應(yīng)用鏡像庫(kù),即可查看到該鏡像的所有tag信息,每個(gè)tag后面都有個(gè)刪除按鈕(默認(rèn)沒(méi)有,配置參考config.yml)

 

四、快捷部署

集群模式可以通過(guò)docker stack快速部署registry和registry web。

新建配置文件srv-config.yml、web-config.yml放到指定路徑,再新建docker-compose.yml文件,執(zhí)行命令即可。

docker stack deploy -c docker-compose.yml RGT
version: '3.7'      # docker stack 需要是3.0以上版本
services:
 registry-srv:      # 服務(wù)名
 image: registry
 
 ports:         # 映射端口
  - 5000:5000
  
 volumes:        # 掛載鏡像路徑和配置文件,注意修改路徑與實(shí)際一致
  - /opt/zwx-registry:/var/lib/registry
  - /opt/zwx-registry/srv-config.yml:/etc/docker/registry/config.yml
  
 deploy:        # 設(shè)置單任務(wù),并約束主節(jié)點(diǎn)運(yùn)行
  mode: replicated
  replicas: 1
  placement:
  constraints:
   - node.role == manager
  
 registry-web:      # 服務(wù)名  
 image: hyper/docker-registry-web
 
 ports:        # 映射端口
  - 8000:8080
 
 volumes:      # 掛載配置文件,注意修改路徑與實(shí)際一致
  - /opt/zwx-registry/web-config.yml:/conf/config.yml
  
 environment:
  - REGISTRY_URL=http://registry-srv:5000/v2
  - REGISTRY_NAME=localhost:5000
 
 deploy:        # 設(shè)置單任務(wù),并約束主節(jié)點(diǎn)運(yùn)行
  mode: replicated
  replicas: 1
  placement:
  constraints:
   - node.role == manager

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。

標(biāo)簽:煙臺(tái) 山南 湖北 湘潭 黃山 懷化 賀州 通遼

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Docker私有倉(cāng)庫(kù)的搭建和界面化管理詳解》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    古田县| 峨眉山市| 华池县| 东辽县| 山阴县| 张家川| 德江县| 米易县| 科技| 崇文区| 上杭县| 宁乡县| 碌曲县| 莆田市| 赣榆县| 定日县| 黄浦区| 林周县| 尼勒克县| 罗平县| 新竹县| 栾城县| 洪湖市| 寿宁县| 广宁县| 翁牛特旗| 乌兰浩特市| 诸城市| 公主岭市| 霍城县| 昌图县| 榆中县| 偃师市| 库尔勒市| 堆龙德庆县| 南丹县| 虹口区| 开阳县| 柘城县| 镇平县| 临沧市|