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.hqwc.cn/news/688815.html

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

相关文章

Linux下安装mysql8.0(以rpm包安装)

前言&#xff1a;原文在我的博客网站中&#xff0c;持续更新数通、系统方面的知识&#xff0c;欢迎来访&#xff01; Linux下安装mysql8.0&#xff08;以rpm包安装&#xff09;https://myweb.myskillstree.cn/125.html 目录 1、查操作系统信息 2、下载mysql 8.0.34的rpm包 …

YAML如何操作Kubernetes核心对象

Minikube 环境搭建 Kubernetes 的基本架构 Kubernetes 声明式语言 YAML YAML操作Kubernetes核心对象 Pod Kubernetes 最核心对象Pod Pod 是对容器的“打包”&#xff0c;里面的容器&#xff08;多个容器&#xff09;是一个整体&#xff0c;总是能够一起调度、一起运行&#…

代码无界,创新无限!华为云开发者日 · 广州站来了!

5月23日&#xff0c;2024年首场华为云开发者日HDC.Cloud Day将在广州盛大举行。这场技术派对将为开发者们带来一场无与伦比的技术盛宴。在这里&#xff0c;开发者们将有机会现场聆听行业专家的精彩分享&#xff0c;深度了解众多前沿产品的最新技术和功能&#xff0c;并与行业专…

【c++】全面理解C++多态:虚函数表深度剖析与实践应用

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;c笔记仓 朋友们大家好&#xff0c;通过本篇文章&#xff0c;来详细理解多态的内容 目录 1.多态的定义及实现1.1多态的构成条件1.2虚函数的重写1.3 C11 override 和 final1.4重载、覆盖(重写)、隐藏…

Git === Git概述 Git安装

第1章 Git概述 Git是一个免费的、开源的分布式版本控制系统&#xff0c;可以快速高效地处理从小型到大型的各种项目。 Git易于学习&#xff0c;占地面积小&#xff0c;性能极快。 它具有廉价的本地库&#xff0c;方便的暂存区域和多个工作流分支等特性。其性能优于Subversion…

CAXA 3D实体设计2024:塑造未来的创新引擎

在数字化时代的浪潮中&#xff0c;3D CAD实体建模设计正成为推动工业创新的核心动力。CAXA 3D实体设计2024&#xff0c;以其卓越的性能和丰富的功能&#xff0c;为企业和个人用户带来了前所未有的设计体验。 CAXA 3D实体设计2024不仅拥有直观易用的界面&#xff0c;还配备了强…

经典权限五张表功能实现

文章目录 用户模块(未使用框架)查询功能实现步骤代码 新增功能实现步骤代码 修改功能实现步骤代码实现 删除功能实现步骤代码实现 用户模块会了&#xff0c;其他两个模块与其类似 用户模块(未使用框架) 查询功能 这里将模糊查询和分页查询写在一起 实现步骤 前端&#xff1…

NPOI生成word浮动图标

1、NPOI版本2.7.0, net框架4.8 2、安装OpenXMLSDKToolV25.msi 3、先创建一个word文档&#xff0c;并设置图片为浮于文字之上 4、OpenXML显示的结果 5、实际代码如下&#xff1a; public class GenerateWordDemo {public GenerateWordDemo(){}//https://blog.fileformat.co…

官宣!MongoDB Atlas再添新功能!进一步简化构建现代应用程序

亮点前瞻 ● MongoDB Atlas Stream Processing全面可用&#xff0c;开发者能够更轻松地使用实时数据&#xff0c;在统一环境中构建事件驱动型应用程序 ●MongoDB Atlas Search Nodes上线 Microsoft Azure&#xff0c;组织能够隔离和扩展生成式AI工作负载&#xff0c;并将查询…

这8道接口测试面试题

接口测试常见的问题了。 大家乍一看&#xff01; 接口测试面试题 这几个问题&#xff0c;能答出来几个&#xff1f;有没有8个都能够完美的答出来的&#xff1f;在留言区打出你的数字。&#xff08;0~8&#xff09; 这些问题你回答起来&#xff0c;不要吞吞吐吐只说几个关键字…

使用高防IP是应对网络安全的重要措施

使用高防IP&#xff08;High Defense IP&#xff09;在现代网络环境中显得尤为重要&#xff0c;这主要源于以下几个方面的原因&#xff1a; 一、网络安全形势严峻 随着互联网的快速发展&#xff0c;网络安全问题日益突出。各种网络攻击手段层出不穷&#xff0c;如分布式拒绝服…

Vue路由拆分

1.在src下建立router&#xff0c;在router中建立文件index 2.将main.js中部分内容复制 App <template> <div><a href"#/friend">朋友</a><br><a href"#/info">信息</a><br><a href"#/music&quo…