docker私有仓库的registry

news2024/11/17 3:23:47
简介

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.coloradmin.cn/o/1643076.html

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

相关文章

node应用部署运行案例

生产环境: 系统&#xff1a;linux centos 7.9 node版本&#xff1a;v16.14.0 npm版本:8.3.1 node应用程序结构 [rootRainYun-Q7c3pCXM wiki]# dir assets config.yml data LICENSE node_modules nohup.out output.log package.json server wiki.log [rootRainYun-Q7c…

使用MATLAB/Simulink点亮STM32开发板LED灯

使用MATLAB/Simulink点亮STM32开发板LED灯-笔记 一、STM32CubeMX新建工程二、Simulink 新建工程三、MDK导入生成的代码 一、STM32CubeMX新建工程 1. 打开 STM32CubeMX 软件&#xff0c;点击“新建工程”&#xff0c;选择中对应的型号 2. RCC 设置&#xff0c;选择 HSE(外部高…

单链表式并查集

如果用暴力算法的话&#xff0c;那么会直接超时&#xff0c;我们要学会用并查集去记录下一个空闲的位置 #include<bits/stdc.h> using namespace std;const int N 100005;int n; int fa[N]; int a[N];int find(int x) {if (fa[x] x) {return x;}fa[x] find(fa[x]);re…

ChatGPT DALL-E绘图,制作各种表情包,实现穿衣风格的自由切换

DALL-E绘图功能探索&#xff1a; 1、保持人物形象一致&#xff0c;适配更多的表情、动作 2、改变穿衣风格 3、小女孩的不同年龄段展示 4、不同社交平台的个性头像创作 如果不会写代码&#xff0c;可以问GPT。使用地址&#xff1a;我的GPT4 视频&#xff0c;B站会发&#…

Leetcode—422. 有效的单词方块【简单】Plus

2024每日刷题&#xff08;126&#xff09; Leetcode—422. 有效的单词方块 实现代码 class Solution { public:bool validWordSquare(vector<string>& words) {int row words.size();for(int i 0; i < row; i) {// 当前这一行的列数int col words[i].length(…

网络基础-网络设备介绍

本系列文章主要介绍思科、华为、华三三大厂商的网络设备 网络设备 网络设备是指用于构建和管理计算机网络的各种硬件设备和设备组件。以下是常见的网络设备类型&#xff1a; 路由器&#xff08;Router&#xff09;&#xff1a;用于连接不同网络并在它们之间转发数据包的设备…

k8s调度原理以及自定义调度器

kube-scheduler 是 kubernetes 的核心组件之一&#xff0c;主要负责整个集群资源的调度功能&#xff0c;根据特定的调度算法和策略&#xff0c;将 Pod 调度到最优的工作节点上面去&#xff0c;从而更加合理、更加充分的利用集群的资源&#xff0c;这也是我们选择使用 kubernete…

「Node.js」ESModule 与 CommonJS 的 区别

前言 Node.js支持两种模块系统&#xff1a;CommonJS 和 ESModules&#xff08;ESM&#xff09;&#xff0c;它们在语法和功能上有一些不同。 CommonJS (CJS) CommonJS 是 Node.js 最早支持的模块规范&#xff0c;由于它的出现在ES6之前&#xff0c;因此采取的是同步加载模块…

Linux Ubuntu 开机自启动浏览器

终端输入命令&#xff1a;gnome-session-properties 打开启动设置 如果提示&#xff1a;Command ‘gnome-session-properties’ not found, but can be installed with: apt install gnome-startup-applications 则执行&#xff1a;apt install gnome-startup-applications安装…

用pyecharts完成综合案例之全球GDP动态可视化统计图

综合案例之全球GDP 所用csv文档下载链接如下&#xff1a;https://download.csdn.net/download/qq_42707739/12621102?ops_request_misc%257B%2522request%255Fid%2522%253A%2522171488482816800184124883%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fdownloa…

机器学习周报第40周

目录 摘要Abstract一、文献阅读1.1 摘要1.2 论文背景1.3 论文模型1.3.1 模型概述1.3.2 模型细节 1.4 模型精度 二、论文代码2.1 rtdetr.py2.2 backbone模块2.3 AIFI2.4 CCFM 总结 摘要 本周&#xff0c;我深入研读了RT-DETR&#xff08;实时目标检测变换器&#xff09;论文&am…

【数据结构】初识数据结构

引入&#xff1a; 哈喽大家好&#xff0c;我是野生的编程萌新&#xff0c;首先感谢大家的观看。数据结构的学习者大多有这样的想法&#xff1a;数据结构很重要&#xff0c;一定要学好&#xff0c;但数据结构比较抽象&#xff0c;有些算法理解起来很困难&#xff0c;学的很累。我…

中仕公考:哪些情况不能考公务员?

1.年龄不符合 主要分两类【一类是未成年人&#xff0c;另一类是超龄人员】 具体来讲:年龄一般为18周岁以上、35周岁以下 (2024国考标准是1987年10月至2005年10月期间出生&#xff09; 对于2024年应届硕士、博士研究生(非在职人员)放宽到40周岁以下(2024国考标准是1982年10月以后…

【Conda】解决使用清华源创建虚拟环境不成功问题

文章目录 问题描述&#xff1a;清华源创建不成功解决步骤1 添加官方源步骤2 删除C:/user/你的用户名/的 .condarc 文件步骤3 再次创建 问题描述&#xff1a;清华源创建不成功 本地配置了清华源&#xff0c;但是在创建虚拟环境时不成功&#xff0c;报错如下。 图片若看不清&…

Docker使用进阶篇

文章目录 1 前言2 使用Docker安装常用镜像示例2.1 Docker安装RabbitMQ2.2 Docker安装Nacos2.3 Docker安装xxl-job&#xff08;推荐该方式构建&#xff09;2.4 Docker安装redis2.5 Docker安装mysql 1 前言 上一篇介绍了Docker的基础概念&#xff0c;带你 入门Docker&#xff0c…

初识webpack项目

新建一个空的工程 -> % mkdir webpack-project 为了方便追踪执行每一个命令&#xff0c;最终产生了哪些变更&#xff0c;将这个空工程初始化成git项目 -> % cd webpack-project/-> % git init Initialized empty Git repository in /Users/lixiang/frontworkspace/…

STM32微秒级别延时--F407--TIM1

基本配置&#xff1a; TIM1挂载在APB2总线上&#xff0c;150MHz经过15分频&#xff0c;得到10MHz计数频率&#xff0c;由于disable了自动重装载&#xff0c;所以只需要看下一次计数值是多少即可。 void TIM1_Delay_us(uint16_t us) //使用阻塞方式进行延时&#xff0c;ARR值不…

Colibri for Mac v2.2.0激活版:专业级无损音乐播放器

Colibri for Mac是一款专为Mac用户设计的高分辨率无损音乐播放器。它基于BASS技术构建&#xff0c;为用户带来极致的音频体验。Colibri支持所有流行的无损和有损音频格式&#xff0c;如FLAC、MP3、AAC等&#xff0c;确保音乐播放的清晰度和完美度。其独特的清晰比特完美播放技术…

hadoop学习---基于Hive的教育平台数据仓库分析案例(一)

案例背景&#xff1a; 大数据技术的应用可以从海量的用户行为数据中进行挖掘分析&#xff0c;根据分析结果优化平台的服务质量&#xff0c;最终满足用户的需求。教育大数据分析平台项目就是将大数据技术应用于教育培训领域&#xff0c;为企业经营提供数据支撑。 案例数据产生流…