Docker私有仓库搭建与界面化管理

news2024/11/16 6:25:20

一、关于Registry

官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去。

但是有时候我们的使用场景需要我们拥有一个私有的镜像仓库用于管理我们自己的镜像。这个可以通过开源软件Registry来达成目的。

 Registry在github上有两份代码:老代码库和新代码库。老代码是采用python编写的,存在pull和push的性能问题,出到0.9.1版本之后就标志为deprecated,不再继续开发。

 从2.0版本开始就到在新代码库进行开发,新代码库是采用go语言编写,修改了镜像id的生成算法、registry上镜像的保存结构,大大优化了pull和push镜像的效率。

 官方在Docker hub上提供了registry的镜像,我们可以直接使用该registry镜像来构建一个容器,搭建我们自己的私有仓库服务。


二、搭建Registry

首先搜索并拉取镜像

docker search registry    # 建议先搜索一下,可以看一下相关的镜像,说不定哪天就有更好的镜像了
docker pull registry    # 标签可以不加,因为当前最新就是v2

  运行一个registry容器

docker run -d \            # 后台运行
--name registry-srv \    # 指定容器名
--restart=always \        # 设置自动启动
-p 5000:5000 \            # 端口映射宿主机,通过宿主机地址访问
-v /opt/zwx-registry:/var/lib/registry \     # 把镜像存储目录挂载到本地,方便管理和持久化
-v /opt/zwx-registry/srv-config.yml:/etc/docker/registry/config.yml \    # 把配置文件挂载到本地,方便修改和保存
registry

  srv-config.yml内容如下

  标红delete参数设置为true,是为了让仓库支持删除功能。默认没有这个参数,也就是不能删除仓库镜像。

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

  注册https协议(否则push安全认证过不去)

  需要通过本地仓库下载镜像,均需要配置  

vim /etc/docker/daemon.json        # 默认无此文件,需自行添加,有则追加以下内容。
{ "insecure-registries":["xx.xx.xx.xx:5000"] }  # 指定IP地址或域名

systemctl daemon-reload    # 守护进程重启
systemctl restart docker    # 重启docker服务

镜像上传与下载

docker push xx.xx.xx.xx:5000/nginx            # 一定要注明仓库地址,否则会报错
docker pull xx.xx.xx.xx:5000/nginx

  查看仓库镜像信息

curl -XGET http://xx.xx.xx.xx:5000/v2/_catalog    # 查看仓库镜像列表(也可以通过windows浏览器打开查看)
curl -XGET http://xx.xx.xx.xx:5000/v2/image_name/tags/list  # 查看指定应用镜像tag


三、搭建Registry web

首先搜索并拉取镜像

docker search docker-registry-web
docker pull hyper/docker-registry-web    # 这个镜像用的人较多

  运行一个registry web容器

docker run -d \            # 后台运行
--name registry-web \    # 指定容器名
--restart=always \        # 设置自动启动
-p 8000:8080 \            # 端口映射宿主机,通过宿主机地址访问
-v /opt/zwx-registry/web-config.yml:/conf/config.yml \    # 把配置文件挂载到本地,方便修改和保存
hyper/docker-registry-web

  web-config.yml文件内容如下

标红readonly参数设置为false,是为了web页面可以显示删除按钮。默认是true,只读状态,没有删除按钮,只能查看。

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

部署完成后,浏览器打开仓库UI地址即可查看到所有应用镜像

选择任意应用镜像库,即可查看到该镜像的所有tag信息,每个tag后面都有个删除按钮(默认没有,配置参考config.yml)

 


四、快捷部署

  集群模式可以通过docker stack快速部署registry和registry web。

  新建配置文件srv-config.yml、web-config.yml放到指定路径,再新建docker-compose.yml文件,执行命令即可。

docker stack deploy -c docker-compose.yml RGT

version: '3.7'      # docker stack 需要是3.0以上版本
services:
  registry-srv:      # 服务名
    image: registry
    
    ports:         # 映射端口
      - 5000:5000
      
    volumes:        # 挂载镜像路径和配置文件,注意修改路径与实际一致
      - /opt/zwx-registry:/var/lib/registry
      - /opt/zwx-registry/srv-config.yml:/etc/docker/registry/config.yml
      
    deploy:        # 设置单任务,并约束主节点运行
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
      
  registry-web:      # 服务名  
    image: hyper/docker-registry-web
    
    ports:        # 映射端口
      - 8000:8080
    
    volumes:      # 挂载配置文件,注意修改路径与实际一致
      - /opt/zwx-registry/web-config.yml:/conf/config.yml
      
    environment:
      - REGISTRY_URL=http://registry-srv:5000/v2
      - REGISTRY_NAME=localhost:5000
    
    deploy:        # 设置单任务,并约束主节点运行
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager

私有仓库 - Docker — 从入门到实践

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/738425.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分享AIGC前沿论文系列二 面向区域级图像理解的端到端多模态大模型GPT4RoI

文章目录 概要论文摘要论文细节获取方式 概要 面向区域级图像理解的端到端多模态大模型 带来了超越图像级理解的全新对话和交互体验 进行丝滑的人机互动,不仅仅是文字级别的人机互动 论文摘要 本文提出对感兴趣区域进行Instruction Tuning,并提出GPT4…

Django基础入门⑬:Django表单实例【表单应用】获取全量书籍信息

Django基础入门⑫:Django 对象查询详解,分组聚合 Django表单实例表单应用编写模板层HTML页面编写视图层逻辑代码配置url路由模式映射页面搜索效果展示表单验证逻辑 获取全量书籍信息实现添加书籍信息 🏘️🏘️个人简介&#xff1a…

jmeter的高阶使用技巧——打印时间戳与年月时分秒

Jmeter中提供了一种函数,可以打印时间戳,如下图 年: yyyy 月:MM 日:dd   时: HH 分: mm 秒:ss 关于时间戳的格式,可以自由组合定义,这里我写成这样 yyyy-M…

443端口被占用,vmware居然也来捣乱

今天搬砖时发现应用起不来了,显示出了熟悉的error *************************** APPLICATION FAILED TO START ***************************~~重点在这块哈 Description:Web server failed to start. Port 443 was already in use.Action:Identify and stop the p…

共创先进软件,驱动装备数字化——同元软控成功举办MWORKS 2023b产品发布会

6月30日,MWORKS 2023b产品发布会与Modelica暨装备数字化研讨会(2023)同期举行。继2023年1月8日发布MWORKS 2023a之后,年内第二个版本如期而至。MWORKS是苏州同元软控信息技术有限公司(简称“同元软控”)历时…

IPO观察丨烧钱7年、押注新药上市,来凯医药正在经历一场关键突围

医药板块的加速回升趋势越来越显著。据Choice数据显示,截至7月6日,7月以来医药相关ETF合计获净申购37.17亿份。拉长期限来看,2023年以来医药相关ETF合计获净申购637.06亿份。根据区间成交均价计算,今年以来有超300亿元资金流入医药…

DAY43:不同路径+不同路径Ⅱ(初始化注意点很多,及时复盘)

文章目录 62.不同路径(注意初始化)BFS深度搜索写法动态规划思路DP数组的含义递推公式DP数组初始化遍历顺序打印dp数组 动态规划写法数组越界的问题for循环执行的问题 63.不同路径Ⅱ(初始化区别)思路DP数组含义递推公式DP数组初始化…

武汉理工大学信息工程学院2023暑期学术夏令营|信息与通信工程方向

目录 武汉理工大学 校训? 1 通信系统的有效性和可靠性 2 关于QAM调制的问题 2.1 什么是调制 2.2 什么是载波调制 2.3 QAM原理 2.4 数字信号QAM调制 2.5 QAM如何实现? 3 看马路上行驶的车辆轮胎为什么倒转 “视觉暂留” 4 6G/4G/5G的经典技…

卫星数据下载指南

1、USGS Earth Explorer(美国地质勘探局地球探测器) EarthExplorer 2、Sentinel Open Access Hub https://scihub.copernicus.eu/dhus/#/home 3、NASA Earthdata Search(美国航天局地球数据搜索) https://search.earthdata.n…

构建新型电力系统,需要什么样的数字能源底座?

在迈向“碳中和”的进程中,全球能源产业变革已经进入了关键时期,其中电力系统的价值从未像今天这样重要。 国际能源署数据显示,2022年全球与能源相关的二氧化碳排放量超过368亿吨,创下历史新高。其中,电力领域碳排放占…

什么是热修复?它的优缺点是什么?

我们开发时常常要考虑的一些问题。 开发上线的版本能保证不存在Bug么? 修复后的版本能保证用户都及时更新么? 如何最大化减少线上Bug对业务的影响? 热修复技术帮助我们解决了很多问题,带来的优势不言而喻。不知道各位对于热修复技…

Qt关于mqtt多平台移植

最近写了很多mqtt相关的项目,但是在各个平台上编译mqtt的库成为了一个很麻烦的事情,每个平台都需要去编译一次,而且还会出现各种问题,为了方便解决这个问题,所以这里将mqtt库的代码以源代码的方式添加进去,…

Kafka 基础概念学习

基础概念学习 一.基础概念二.结构图 一.基础概念 Kafka 基本概念:一种分布式的,基于发布/订阅的消息系统项目ValueBrokerKafka服务端(即部署了Kafka的机器)Producer生产者写数据到主副本Consumer消费者从主副本读数据Consumer Group消费者组&#xff0c…

Apache Doris (二十二) :Doris Rollup物化索引作用及使用注意点

目录 1. Rollup 物化索引作用 1.1 改变索引 1.2 聚合数据 ​​​​​​​2. Rollup物化索引注意点 进入正文之前,欢迎订阅专题、对博文点赞、评论、收藏,关注IT贫道,获取高质量博客内容! 宝子们点赞、收藏不迷路!…

Stable Diffusion - 图像控制插件 ControlNet (OpenPose) 配置与使用

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/131591887 论文:Adding Conditional Control to Text-to-Image Diffusion Models ControlNet 是神经网络结构,用于控制预…

mybatis联查 字段重复问题 查询出来一致

联查的数据是不同,但是返回出来的数据是相同的 排查原因: 两个不同的实体类都有同一个字段code 解决办法: 在数据库字段column字段起个别名就可以

Spring 用注解更简单存取对象

Spring 用注解更简单存取对象 ​ 上一篇文章是最原始的创建使用,这篇主要是讲 Spring 更简单的存储和读取对象的核心是使用注解 ,也是日常生活企业用的最多的方法 “注解” 所以这篇的内容是很重要的 !!! 文章目录 Spring 用注解…

基础篇--单片机简介

单片机简介 视频教程 单片机是什么 单片机:Single-Chip Microcomputer 单片微型计算机,是一种集成电路芯片 单片机有什么用? 单片机发展历程 单片机发展超势 CISC Vs RISC CISC和RISC举例 https://wenku.baidu.com/view/b074b0ed998fcc22b…

浅谈Acrel-2000电力监控系统在配电工程中的应用 安科瑞 许敏

摘 要:随着社会经济的快速发展,我国变电站正朝着现代化的方向不断发展,自动化设备以及继电保护装置凭借自身优异性能而获得广泛应用。本文介绍的AM5SE系列的微机保护装置,可以针对中原科技城智慧能源配电工程中不同保护对象提供对…

全志f1c200s嵌入式驱动开发(原理图)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 熟悉全志soc的同学都知道,除了v3s之外,其实还有很多性价比很高的soc。这里面就包含了f1c200s。之前的v3s,也就是我们所说的licheepi上面的soc,反响很不错。后期又出了一个liche…