【云原生Docker】11-Docker镜像仓库

news2024/9/30 7:18:40

【云原生|Docker】11-Docker Registry(官方仓库)

文章目录

  • 【云原生|Docker】11-Docker Registry(官方仓库)
    • 前言
    • docker registry
      • 简介
      • 操作示例
    • hyper/docker-registry-web

前言

​ 前面我们所有的docker操作,使用的镜像都是在docker官方的镜像仓库下载,当然这并不是什么问题。然后再实际工作中我们更加倾向于使用自建的docker仓库,主要是因为方便管控,也能储存自定义的不可公开的镜像。docker官方就给我们提供了私有仓库解决方案。本将主要介绍:docker官方registry

docker registry

简介

  • Docker Registry是一个官方开源的Docker镜像仓库,用于存储和分发Docker镜像。它允许用户将自己的Docker镜像上传到一个中心仓库,以便其他人可以方便地下载和使用这些镜像。
  • Docker Registry有两个主要组件:Registry和Registry API。Registry是一个HTTP服务器,用于存储和检索Docker镜像。Registry API是一个RESTful API,用于与Registry进行交互。
  • Docker Registry作为一个官方开源的Docker镜像仓库,本身并没有提供图形界面。这也是生产中使用不多的原因,一般就会使用基于官方的二开产品,例如:Harbor

操作示例

  1. 直接运行registry,该镜像需要监听5000端口
[root@clinet ~]# docker run -d -p 5000:5000 registry 
a12a139819175b14e708ea4d2cdec569a979075a2f9f5a67d4c5317584b0449f
[root@clinet ~]# 
[root@clinet ~]# docker ps -a
CONTAINER ID   IMAGE      COMMAND                  CREATED         STATUS         PORTS                                       NAMES
a12a13981917   registry   "/entrypoint.sh /etc…"   3 seconds ago   Up 2 seconds   0.0.0.0:5000->5000/tcp, :::5000->5000/tcp   laughing_chandrasekhar
[root@clinet ~]# 
  1. 查看本地端口已监听;
[root@clinet ~]# netstat -ntpl |grep 5000
tcp        0      0 0.0.0.0:5000            0.0.0.0:*               LISTEN      3081/docker-proxy   
tcp6       0      0 :::5000                 :::*                    LISTEN      3086/docker-proxy   
[root@clinet ~]#
  1. 在机器2上给要上传的镜像打tag
[root@lvs-1 ~]# docker tag nginx:latest  192.168.194.128:5000/livrary/nginx:v1 
[root@lvs-1 ~]# docker images 
REPOSITORY                           TAG       IMAGE ID       CREATED         SIZE
busybox                              latest    beae173ccac6   15 months ago   1.24MB
192.168.194.128:5000/livrary/nginx   v1        605c77e624dd   15 months ago   141MB
nginx                                latest    605c77e624dd   15 months ago   141MB
[root@lvs-1 ~]# 
  • 192.168.194.128:5000 :表示registry的地址;
  • library : 表示registry中的项目名称,默认仓库会有一个公共项目,名称叫library,在图形化的regustry中我们可以自定义仓库项目;
  • nginx : 表示上传的镜像名称。
  1. push至镜像仓库
[root@lvs-1 ~]# docker push 192.168.194.128:5000/livrary/nginx:v1
The push refers to repository [192.168.194.128:5000/livrary/nginx]
d874fd2bc83b: Pushed 
32ce5f6a5106: Pushed 
f1db227348d0: Pushed 
b8d6e692a25e: Pushed 
e379e8aedd4d: Pushed 
2edcec3590a4: Pushed 
v1: digest: sha256:ee89b00528ff4f02f2405e4ee221743ebc3f8e8dd0bfd5c4c20a2fa2aaa7ede3 size: 1570
[root@lvs-1 ~]# 

错误分析:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ogkqTJoW-1681221166688)(D:\学习\学习笔记\图片\63.png)]

这个错误的原因是:Docker客户端会使用HTTPS协议去访问Docker Registry,因为HTTPS可以提供更好的安全性和加密保护。为了解决这个问题,我们需要在docker的配置文件中添加insecure-registry

[root@lvs-1 ~]# cat /etc/docker/daemon.json 
{
  "registry-mirrors": ["https://mqkiky4e.mirror.aliyuncs.com"],
  "insecure-registries": ["http://192.168.194.128:5000"]
}
[root@lvs-1 ~]#
  1. 在机器a上下载验证。
[root@clinet ~]# docker pull 192.168.194.128:5000/livrary/nginx:v1
v1: Pulling from livrary/nginx
a2abf6c4d29d: Pull complete 
a9edb18cadd1: Pull complete 
589b7251471a: Pull complete 
186b1aaa4aa6: Pull complete 
b4df32aa5a72: Pull complete 
a0bcbecc962e: Pull complete 
Digest: sha256:ee89b00528ff4f02f2405e4ee221743ebc3f8e8dd0bfd5c4c20a2fa2aaa7ede3
Status: Downloaded newer image for 192.168.194.128:5000/livrary/nginx:v1
192.168.194.128:5000/livrary/nginx:v1
[root@clinet ~]# 

总结:

  • 官方registry不提供图形化,因此我们在上传进行后也无法直观查看;
  • docker search查找镜像也无法查找指定的私有仓库,这是因为docker官方把search命令封装死了,直接查找的就是官方hub。

hyper/docker-registry-web

hyper/docker-registry-web是github上的一个超级简单的registry图形界面工具,上面提供了基础的镜像内容,github地址:https://hub.docker.com/r/hyper/docker-registry-web

  1. 搭建web界面
[root@clinet ~]# docker run -d -p 5000:5000 --name registry-srv registry:2
[root@clinet ~]# docker run -it -p 8080:8080 --name registry-web --link registry-srv -e \ REGISTRY_URL=http://registry-srv:5000/v2 -e REGISTRY_NAME=localhost:5000 hyper/docker-registry-web 

  1. 上传busybox镜像
[root@clinet ~]# docker tag busybox:latest 192.168.194.128:5000/livrary/busybox:v1 
[root@clinet ~]# 
[root@clinet ~]# docker push 192.168.194.128:5000/livrary/busybox:v1
The push refers to repository [192.168.194.128:5000/livrary/busybox]
01fd6df81c8e: Pushed 
v1: digest: sha256:62ffc2ed7554e4c6d360bce40bbcf196573dd27c4ce080641a2c59867e732dee size: 527
[root@clinet ~]# 


​ 本章带我们简单了解了什么是docker-registry,当然官方的registry太过简单,因此这不是我们学习的重点,下一章节我们将重点介绍第三方的仓库:Docker Harbor

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

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

相关文章

总结825

学习目标: 4月(复习完高数18讲内容,背诵21篇短文,熟词僻义300词基础词) 今日复习: 手绘高数第11讲思维导图,回顾线性代数第一讲 学习内容: 第12讲二重积分视频,纠正11讲…

手势控制的机器人手臂

将向你展示如何构建机械手臂并使用手势和计算机视觉来控制它。下面有一个在开发阶段的机械手臂的演示视频。展示开发中的手臂的演示视频:https://youtu.be/KwiwetZGv0s如图所示,该过程首先用摄像头捕捉我的手及其标志。通过跟踪特定的界标,例…

300到400的蓝牙耳机有哪些推荐?2023年值得入手的性价比蓝牙耳机

今年依旧是真无线蓝牙耳机快速发展的一年,市面上都有着各式各样的蓝牙耳机,一时间难以辨认哪些款式更适合自己,今天给大家介绍的是300元左右的蓝牙耳机,那这个价位的耳机到底怎么样呢?其实,300左右的蓝牙耳…

Qt 窗口置顶

文章目录一、前言二、示例代码三、补充说明四、窗口透明五、参考一、前言 我们使用QT进行界面开发时,可能会遇到需要将窗口置顶的情况。最常见的就是,需要制作一个悬浮工具栏,悬浮菜单,甚至是悬浮的画板。这就意味这我们需要将这个…

Javascript40行代码实现基础MVC原理。

参考文章 M数据层 V视图 C控制器 先来一个dom结构&#xff0c;一个p标签&#xff0c;用来展示输入的内容&#xff0c;一个input标签&#xff0c;用来输入内容⬇️ <p id"mvcp"></p> <input id"mvc"></input>创建Model类&#x…

第二部分——长难句——第一章——并列句

conjunction(and,but,if,when(while)) 想把两个句子&#xff08;多件事&#xff09;连在一块&#xff0c;就必须加上连词。 所以长难句到底是啥&#xff1f; 所以长难句&#xff08;直白表达&#xff0c;并不是语法表述&#xff09;就是几个简单句多家上几个连接词就齐活了&am…

一文读懂Profibus/Profinet/Ethernet的区别

Ethernet(以太网络)是大家很熟悉的一种网络了&#xff0c;由Xerox公司创建并由Xerox、Intel和DEC公司联合开发的基带局域网规范&#xff0c;是当今现有局域网采用的最通用的通信协议标准&#xff0c;包括标准的以太网&#xff08;10Mbit/s)、快速以太网&#xff08;100Mbit/s&a…

Python 自动化测试框架环境怎么搭建?这篇文章给你讲的明明白白

目录 Python 自动化测试框架环境搭建 第一步&#xff1a;安装 Python 第二步&#xff1a;安装 PyCharm 第三步&#xff1a;安装 Selenium WebDriver 第四步&#xff1a;安装浏览器驱动 第五步&#xff1a;创建测试用例 第六步&#xff1a;集成持续集成平台 总结 Python …

人工智能中的顶级期刊

本文描述了获取人工智能顶级期刊列表的方法&#xff0c;方便读者通过阅读顶级期刊中的论文跟踪人工智能前沿。同时&#xff0c;本文还介绍了获取人工智能顶级期刊投稿信息的方法&#xff0c;帮助读者提高论文的录用率。 1. 顶级期刊列表的获取方法 要查找某个领域的顶级期刊有…

RocketMQ 消费者Rebalance 解析——图解、源码级解析

&#x1f34a; Java学习&#xff1a;Java从入门到精通总结 &#x1f34a; 深入浅出RocketMQ设计思想&#xff1a;深入浅出RocketMQ设计思想 &#x1f34a; 绝对不一样的职场干货&#xff1a;大厂最佳实践经验指南 &#x1f4c6; 最近更新&#xff1a;2023年4月15日 &#x…

gRPC 四种RPC类型异同

gRPC定义了如下四种RPC&#xff0c;刚开始接触的时候&#xff0c;感觉挺奇怪的&#xff0c;RPC不就是接口调用吗&#xff0c;区分这么多干啥&#xff1f;难道实现原理不一样&#xff1f;未读源码之前&#xff0c;还想着有啥神秘的地方&#xff0c;看完源码之后&#xff0c;才发…

Guns社区医疗项目

又是一年毕业季&#xff0c;计算机专业大四的同学们要接受毕业设计的考验啦。又有多少同学为了毕业设计而愁眉苦脸&#xff0c;心力憔悴。考虑到这些&#xff0c;这里为同学们分享一个适合你们毕业设计的作品以及详细介绍&#xff0c;让正在焦头烂额的同学们有所启发&#xff0…

MPC的560x系列的运行模式的介绍

一、模式简介 1、运行模式 一共11种模式&#xff0c;分别为RESET、DRUN、SAFE、TEST、RUN0、RUN1、RUN2、RUN3、HALT、STOP、STANDBY。其中RESET、DRUN、SAFE、TEST是系统工作模式&#xff0c;用户不用个特别关系&#xff0c;而后面几种是用于经常使用到的工作模式。 RESET&a…

ASP.NET Core - 依赖注入(二)

2&#xff0c;NET Core 依赖注入的基本用法 话接上篇&#xff0c;这一章介绍 .NET Core 框架自带的轻量级 Ioc 容器下服务使用的一些知识点&#xff0c;大家可以先看看上一篇文章 [ASP.NET Core - 依赖注入(一)] 2.3 服务解析 通过 IServiceCollection 注册了服务之后&#xf…

五一假期将近,给景区视频监控方案提几点建议

一、行业背景 随着旅游业的不断发展&#xff0c;旅游安全问题越来越受到重视。尤其是五一假期将近&#xff0c;为确保游客在景区内的人身安全和财产安全&#xff0c;景区必须采用高效、可靠的安防视频监控系统&#xff0c;并进行科学规划和设计&#xff0c;从而实现及时发现安…

Simulink simscape绳索和滑轮的使用总结

在做仿真的时候使用了绳索和滑轮&#xff0c;网上的资料不是很多&#xff0c;所以想想还是自己做一下记录&#xff0c;提供了一个小案例&#xff0c;文件上传到我的资源里了。 1.滑轮约束 Pulley 这个模块可以建立滑轮和绳索之间的约束。这个约束保证了绳子和滑轮之间 The pull…

Memory Analyzer Mat

目录 一、JDK 、JRE和JVM 的关系 二、Java进程内存占用查询命令 2.1JAVA 代码是如何执行的 2.2何时用hrpof文件分析内存 三、Memory Analyzer Mat 3.1Memory Analyzer Mat安装 3.2 Overview视图 3.2.1直方图视图&#xff08;histogram&#xff09; 3.2.2 Dominator Tr…

计算机图形学 Animation 学习笔记

1、做插值&#xff1a; 线性插值和用贝塞尔曲线做插值&#xff0c;贝塞尔曲线做插值可以看起来更生动形象 2、物理模拟&#xff08;Simulate Physics&#xff09; 原理是利用“ 力 质量 x 加速度”&#xff0c;知道了这些信息&#xff0c;那么下一帧的位置就可以提前被运算出来…

Ethercat学习-从站FOE固件更新(TwinCAT主站)

文章目录简介协议说明1.读请求2.写请求3.数据4.应答5.错误码6.忙数据传输流程1.读流程2.写流程3.忙操作代码实现1.源码生成与移植2.代码解析1.FOE_ServiceInd2.FOE_Read3.FOE_Write4.FOE_Ack5.FOE_Data6.FOE_Error7.FOE_Busy其他TwinCAT测试简介 FOE(File Access over Etherca…

React从入门到入土系列3-使用React构建你的应用

这是我自己系统整理的React系列博客&#xff0c;主要参考2023年3月开放的最新版本react官网内容&#xff0c;欢迎你阅读本系列内容&#xff0c;希望能有所收货。 本文是该系列的第3篇文章&#xff0c;阅读完本文后你将收获&#xff1a; 如何使用React逐步构建你的应用了解prop…