docker私有仓库的registry

简介

Docker私有仓库的Registry是一个服务,主要用于存储、管理和分发Docker镜像。具体来说,Registry的功能包括:

  1. 存储镜像:Registry提供一个集中的地方来存储Docker镜像,包括镜像的层次结构和元数据。

  2. 版本控制:Registry允许同一镜像的不同版本存在,通过标签来区分不同版本或变体。

  3. 访问控制:Registry可以配置访问权限,使镜像仓库可以是公开的或私有的。这对于组织内部开发、知识产权保护、合规性要求高的项目非常重要。

  4. 镜像分发:Registry允许用户上传、下载和分享Docker镜像。用户可以通过简单的Docker命令来实现这些操作,而无需直接操作Registry。

构建私有Registry的主要好处是用户可以完全掌控镜像的存储和分发。这对于一些特殊要求的场景,如内部开发、知识产权保护、合规性要求高的项目非常重要。同时,私有Registry还可以提高数据传输的效率,特别是在生产环境托管在数据中心机房的情况下,部署在同一机房的Registry可以通过内网进行数据传输,从而提高效率。

Docker公司提供的官方Registry称为Docker Hub,这是一个公共的Docker Registry,包含了数量庞大的公共镜像供全球用户使用。然而,在一些场景下,如企业内部开发、安全性需求高的项目,构建私有Registry是更可行的选择。Docker专门提供了一个名为Docker Distribution的软件包,用户可以通过安装这个软件包快速构建私有Registry。

环境

Redhat 9.2

主机IP 192.168.200.133

docker版本 26.1.1

步骤

docker以以及部署完成,安装docker请参考:docker 应用
部署-CSDN博客

拉取registry镜像
[root@admin ~]# docker pull  registry
Using default tag: latest
latest: Pulling from library/registry
79e9f2f55bf5: Pull complete 
0d96da54f60b: Pull complete 
5b27040df4a2: Pull complete 
e2ead8259a04: Pull complete 
3790aef225b9: Pull complete 
Digest: sha256:169211e20e2f2d5d115674681eb79d21a217b296b43374b8e39f97fcf866b375
Status: Downloaded newer image for registry:latest
docker.io/library/registry:latest
[root@admin ~]# 
[root@admin ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
registry     latest    b8604a3fe854   2 years ago   26.2MB
[root@admin ~]# 
创建私有仓库
[root@admin ~]# docker run -id --name registry -p5000:5000 -v /docker_registry/:/var/lib/registry --restart=always registry:latest 
bd9b6b85169dbc8b749f969171ecdaae25b6e94b8e47bf3c44283efeb0b5c01c
[root@admin ~]# 

关闭防火墙查看端口

[root@admin ~]# systemctl stop firewalld.service 
[root@admin ~]# systemctl disable firewalld.service 
Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service".
Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service".
[root@admin ~]# setenforce  0
[root@admin ~]# ss -anltp | grep 5000
LISTEN 0      4096         0.0.0.0:5000      0.0.0.0:*    users:(("docker-proxy",pid=85628,fd=4))
LISTEN 0      4096            [::]:5000         [::]:*    users:(("docker-proxy",pid=85634,fd=4))
[root@admin ~]# 

 浏览器访问,http://私有仓库服务器地址:5000/v2/_catalog,能过够看到 {"repositories":[]} 表示私有仓库搭建成功

打开配置文件添加私有仓库的地址和访问端口

[root@admin ~]# vim /etc/docker/daemon.json 
{"registry-mirrors": ["https://7f40piyw.mirror.aliyuncs.com"],  //注意这里要加逗号分隔"insecure-registries": ["192.168.200.133:5000"]   //添加此行
}
[root@admin ~]# systemctl  restart  docker.service 
为镜像打标签

为什么要打标签?如果镜像是上传到docker hub默认是不需要为镜像打标签,应为默认⾛的就是公共仓库(docker hub),如 果是上传到本地私有仓库,那么标签是为了指定本地私有仓库的地址。

私有仓库镜像打标签语法:docker tag 原镜像名:原tag 仓库地址:5000/镜像名:tag

[root@admin ~]# docker tag registry:latest  192.168.200.133:5000/registry:v1
[root@admin ~]# docker images
REPOSITORY                      TAG       IMAGE ID       CREATED       SIZE
192.168.200.133:5000/registry   v1        b8604a3fe854   2 years ago   26.2MB
registry                        latest    b8604a3fe854   2 years ago   26.2MB
[root@admin ~]# 
上传镜像到私有仓库

格式:docker push 镜像名:tag

[root@admin ~]# docker push  192.168.200.133:5000/registry:v1 
The push refers to repository [192.168.200.133:5000/registry]
aeccf26589a7: Pushed 
f640be0d5aad: Pushed 
aa4330046b37: Pushed 
ad10b481abe7: Pushed 
69715584ec78: Pushed 
v1: digest: sha256:36cb5b157911061fb610d8884dc09e0b0300a767a350563cbfd88b4b85324ce4 size: 1363
[root@admin ~]# 

浏览器查看

 

[root@admin ~]# docker tag mysql:latest  192.168.200.133:5000/mysql:v1
[root@admin ~]# docker images
REPOSITORY                      TAG       IMAGE ID       CREATED       SIZE
192.168.200.133:5000/mysql      v1        3218b38490ce   2 years ago   516MB
mysql                           latest    3218b38490ce   2 years ago   516MB
registry                        latest    b8604a3fe854   2 years ago   26.2MB
192.168.200.133:5000/registry   <none>    b8604a3fe854   2 years ago   26.2MB
[root@admin ~]# docker push  192.168.200.133:5000/mysql:v1 
The push refers to repository [192.168.200.133:5000/mysql]
d67a9f3f6569: Pushed 
fc8a043a3c75: Pushed 
118fee5d988a: Pushed 
c654c2afcbba: Pushed 
1d1f48e448f9: Pushed 
aad27784b762: Pushed 
0d17fee8db40: Pushed 
d7a777f6c3a4: Pushed 
a0c2a050fee2: Pushed 
0798f2528e83: Pushed 
fba7b131c5c3: Pushed 
ad6b69b54919: Pushed 
v1: digest: sha256:238cf050a7270dd6940602e70f1e5a11eeaf4e02035f445b7f613ff5e0641f7d size: 2828

浏览器刷新查看

删除MySQL镜像再次拉取

[root@admin ~]# docker rmi 192.168.200.133:5000/mysql:v1 
Untagged: 192.168.200.133:5000/mysql:v1
Untagged: 192.168.200.133:5000/mysql@sha256:238cf050a7270dd6940602e70f1e5a11eeaf4e02035f445b7f613ff5e0641f7d
[root@admin ~]# docker images 
REPOSITORY                      TAG       IMAGE ID       CREATED       SIZE
mysql                           latest    3218b38490ce   2 years ago   516MB
registry                        latest    b8604a3fe854   2 years ago   26.2MB
[root@admin ~]# docker pull 192.168.200.133:5000/mysql:v1 
v1: Pulling from mysql
Digest: sha256:238cf050a7270dd6940602e70f1e5a11eeaf4e02035f445b7f613ff5e0641f7d
Status: Downloaded newer image for 192.168.200.133:5000/mysql:v1
192.168.200.133:5000/mysql:v1
[root@admin ~]# docker images
REPOSITORY                      TAG       IMAGE ID       CREATED       SIZE
192.168.200.133:5000/mysql      v1        3218b38490ce   2 years ago   516MB
mysql                           latest    3218b38490ce   2 years ago   516MB
registry                        latest    b8604a3fe854   2 years ago   26.2MB
192.168.200.133:5000/registry   <none>    b8604a3fe854   2 years ago   26.2MB
[root@admin ~]# 

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

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

相关文章

基于HSI模型的水下图像增强算法,Matlab实现

博主简介&#xff1a; 专注、专一于Matlab图像处理学习、交流&#xff0c;matlab图像代码代做/项目合作可以联系&#xff08;QQ:3249726188&#xff09; 个人主页&#xff1a;Matlab_ImagePro-CSDN博客 原则&#xff1a;代码均由本人编写完成&#xff0c;非中介&#xff0c;提供…

如何在Linux上设置IP

设置动态IP 在Linux上配置动态IP地址&#xff0c;通常是通过DHCP&#xff08;动态主机配置协议&#xff09;来实现的。以下是配置动态IP地址的一般步骤&#xff1a; 确认网卡名称&#xff1a; 使用ifconfig或ip addr命令来查看当前系统中的网卡名称。网卡名称通常是以eth、enp…

【数据结构】-- 链表专题

链表的分类 前面我们实现了单链表&#xff0c;单链表只是链表的一种。可以根据以下几个标准来判断链表的类型&#xff1a; 1.单向或者双向 如图所示&#xff0c;单向链表中一个节点的指针域只储存了下一个节点的指针&#xff0c;能通过前一个节点访问后一个节点&#xff0c;无…

【4089】基于小程序实现的互动打卡系统

作者主页&#xff1a;Java码库 主营内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】&#xff1a;Java 【框架】&#xff1a;spring…

双网口扩展IO支持8DO输出

M320E以太网远程I/O数据采集模块是一款工业级、隔离设计、高可靠性、高稳定性和高精度数据采集模块&#xff0c;嵌入式32位高性能微处理器MCU&#xff0c;集成2路工业10/100M自适应以太网模块里面。提供多种I/O&#xff0c;支持标准Modbus TCP&#xff0c;可集成到SCADA、OPC服…

怎么写毕业论文的? 推荐4个AI工具

写作这件事一直让我们从小学时期就开始头痛&#xff0c;初高中时期800字的作文让我们焦头烂额&#xff0c;一篇作文里用尽了口水话&#xff0c;拼拼凑凑才勉强完成。 大学时期以为可以轻松顺利毕业&#xff0c;结果毕业前的最后一道坎拦住我们的是毕业论文&#xff0c;这玩意不…

短视频矩阵系统源码/saas--总后台端、商户端、代理端、源头开发

短视频矩阵系统源码/saas--总后台端、商户端、代理端、源头开发 搭建短视频矩阵系统源码的交付步骤可以概括为以下几个关键环节&#xff1a; 1. **系统需求分析**&#xff1a;明确系统需要支持的功能&#xff0c;如短视频的上传、存储、播放、分享、评论、点赞等。 2. **技术选…

Python深度学习基于Tensorflow(5)机器学习基础

文章目录 监督学习线性回归逻辑回归决策树支持向量机朴素贝叶斯 集成学习BaggingBoosting 无监督学习主成分分析KMeans聚类 缺失值和分类数据处理处理缺失数据分类数据转化为OneHot编码 葡萄酒数据集示例 机器学习的流程如下所示&#xff1a; 具体又可以分为以下五个步骤&#…

Python开源工具库使用之运动姿势追踪库mediapipe

文章目录 前言一、姿势估计1.1 姿态关键点1.2 旧版 solution API1.3 新版 solution API1.4 俯卧撑计数 二、手部追踪2.1 手部姿态2.2 API 使用2.3 识别手势含义 参考 前言 Mediapipe 是谷歌出品的一种开源框架&#xff0c;旨在为开发者提供一种简单而强大的工具&#xff0c;用…

[C++核心编程-04]----C++类和对象之封装

目录 引言 正文 01-类和对象简介 02-封装简介 03-封装的意义 04-封装案例之设计学生类 05-封装的权限控制 06-struct和class的区别 07-成员属性设置为私有 08-封装案例1-设计立方体 09-封装案例2-判断点和圆的关系 总结 引言 在C中&#xff0c;…

Failed to build flash-attn:ERROR: Could not build wheels for flash-attn

安装 FlashAttention 的时候遇到报错&#xff1a; Failed to build flash-attn ERROR: Could not build wheels for flash-attn, which is required to install pyproject.toml-based projects可能是安装的版本与环境存在冲突吧&#xff0c;我的环境是&#xff1a; python 3.1…

Linux下添加自己的服务脚本(service)

systemd服务文件(service file)是用来定义和配置systemd服务的文件,通常以.service为后缀。以下是service文件的详细格式和内容说明: 1 文件路径 /etc/systemd/system(供系统管理员和用户使用)系统服务,开机不需要登录就能运行的程序/usr/lib/systemd/system(供发行版…

C语言如何解析JSON数据

一、了解需要使用的C语言函数 1、strstr函数 用于在一个字符串中查找另一个字符串第一次出现的位置。 函数原型如下&#xff1a; char *strstr(const char *haystack, const char *needle);haystack 是要搜索的字符串&#xff0c;needle 是要查找的子字符串。 函数返回一个…

堆的应用2——TOPK问题

TOPK问题 TOP-K问题&#xff1a;即求数据结合中前K个最大的元素或者最小的元素&#xff0c;一般情况下数据量都比较大。 比如&#xff1a;专业前10名、世界500强、富豪榜、游戏中前100的活跃玩家等。 情况1——数据量小 对于Top-K问题&#xff0c;能想到的最简单直接的方式就…

JSONArray怎么通过jsonObject中的某个属性值进行分组

Java JSONArray怎么通过jsonObject中的某个属性值进行分组 在Java中&#xff0c;可以使用JSONArray和JSONObject来处理JSON数据。如果你想要通过jsonObject中的某个属性值对JSONArray进行分组&#xff0c;可以使用Java 8的Stream API来简化操作。 以下是一个简单的例子&#…

嵌入式C语言高级教程:实现基于STM32的自适应交通信号控制系统

自适应交通信号控制系统能够基于实时交通流数据调整信号灯的时长&#xff0c;提高路口的通行效率。本教程将指导您如何在STM32微控制器上实现一个基本的自适应交通信号控制系统。 一、开发环境准备 硬件要求 微控制器&#xff1a;STM32F103C8&#xff0c;具备足够的处理能力…

Eclipse下载安装教程(包含JDK安装)【保姆级教学】【2023.10月最新版】

目录 文章最后附下载链接 第一步&#xff1a;下载Eclipse&#xff0c;并安装 第二步&#xff1a;下载JDK&#xff0c;并安装 第三步&#xff1a;Java运行环境配置 安装Eclipse必须同时安装JDK &#xff01;&#xff01;&#xff01; 文章最后附下载链接 第一步&#xf…

使用Python和MoviePy库实现视频拼接与合成的技巧与实践

首先&#xff0c;我们需要导入所需的库&#xff1a; from moviepy.editor import VideoFileClip, concatenate_videoclips, AudioFileClip, CompositeVideoClip, ColorClip import os import random from typing import List from enum import Enum 接下来&#xff0c;我们定义…

Git如何查看有多少个分支、创建分支、切换分支

2024年5月9日&#xff0c;周四上午 在 Git 中&#xff0c;新建一个分支是非常简单的。以下是如何操作的步骤&#xff1a; 查看现有分支&#xff1a;git branch这个命令会列出当前仓库中的所有本地分支。创建新分支&#xff1a;git branch <new-branch-name>这个命令会创…

[法规规划|数据概念]金融行业数据资产和安全管理系列文件解析(3)

“ 金融行业在自身数据治理和资产化建设方面一直走在前列。” 一直以来&#xff0c;金融行业由于其自身需要&#xff0c;都是国内开展信息化建设最早&#xff0c;信息化程度最高的行业。 在当今数据要素资产化的浪潮下&#xff0c;除了行业自身自身数据治理和资产化建设方面&am…