如何建立Docker私有仓库?

文章目录

  • docker私有仓库
    • harbor
    • Harbor仓库部署
    • Harbor仓库使用

在这里插入图片描述

docker私有仓库

Docker 私有仓库是一个用于存储和管理 Docker 镜像的私有存储库。它允许你在内部网络中创建和管理 Docker 镜像,并提供了更好的安全性和控制,因为你可以完全控制谁能够访问和下载你的镜像。

以下是 Docker 私有仓库的一些重要特点和详细介绍:

  1. 镜像存储和管理:Docker 私有仓库允许你在仓库中存储和管理 Docker 镜像。你可以将自己创建的镜像或从其他来源拉取的镜像上传到私有仓库,以备将来使用。

  2. 安全性和隐私:私有仓库提供了更好的安全性和隐私控制。你可以限制对仓库的访问权限,只允许授权用户或团队访问其中的镜像。这对于企业或组织内部使用 Docker 镜像非常重要,可以防止未经授权的访问和滥用。

  3. 高可用性:许多 Docker 私有仓库支持高可用性设置,可以通过多个节点复制和备份镜像来保证仓库的稳定性和可用性。

  4. 用户身份验证:私有仓库通常支持多种用户身份验证方式,例如基本身份验证、OAuth、LDAP 等。这些机制可以帮助你验证用户身份并确保只有授权用户才能访问仓库。

  5. 镜像版本控制:私有仓库通常支持对镜像版本的管理,你可以上传和保存不同版本的镜像,并轻松回滚到先前的版本。

  6. 加速器:私有仓库可以作为一个本地的镜像加速器,可以显著提高 Docker 镜像的拉取速度。当你在内部网络中部署私有仓库时,它可以减少从公共 Docker Hub 下载镜像的网络延迟。

  7. 客户端支持:Docker 客户端原生地支持私有仓库。你可以像操作公共 Docker Hub 一样操作私有仓库,只需在镜像名称前加上仓库的地址,如 private-registry.example.com/my-image:latest

  8. 存储限制:私有仓库可以设置存储限制,以限制用户上传的镜像大小和总存储空间使用量。

常见的 Docker 私有仓库解决方案包括:

  • Docker Trusted Registry (DTR):由 Docker 官方提供的企业级私有仓库解决方案,提供高级功能和安全特性。
  • Harbor:开源的 Docker 私有仓库项目,由 VMware 发起并维护,支持高可用性和安全特性。
  • Nexus Repository Manager:不仅支持 Docker 镜像,还支持其他类型的仓库管理。

使用 Docker 私有仓库可以为企业或组织内部的 Docker 镜像管理提供更好的控制和灵活性。它允许你按照自己的需求和政策管理 Docker 镜像,并确保镜像的安全性和可用性。

harbor

Harbor 是一个开源的企业级 Docker 镜像仓库和运维工具,由 VMware 发起并维护。它旨在提供一个安全、可靠、易于管理的 Docker 镜像存储和管理解决方案。Harbor 支持大规模的 Docker 镜像仓库,适用于企业或组织内部使用,提供了高级的安全性、权限管理和多种存储后端选项。

以下是 Harbor 的一些主要特点和详细介绍:

  1. Docker 镜像存储和管理:Harbor 允许你在内部网络中存储和管理 Docker 镜像。你可以将自己创建的 Docker 镜像或从其他来源拉取的镜像上传到 Harbor 中,以备将来使用。

  2. 多租户和权限管理:Harbor 支持多租户架构,可以为不同的用户或团队提供独立的项目和命名空间。你可以通过灵活的权限管理来控制用户对镜像仓库的访问权限。

  3. 安全性:Harbor 提供了多种安全特性,包括用户身份验证和授权、镜像签名验证、防止恶意代码注入等,以确保仓库中的镜像安全可信。

  4. 镜像复制和同步:Harbor 支持在多个 Harbor 实例之间复制和同步镜像,可以轻松实现跨地域或跨数据中心的镜像分发和备份。

  5. 高可用性:Harbor 可以部署为多节点集群,提供高可用性设置,保证仓库的稳定性和可用性。

  6. 存储后端支持:Harbor 支持多种存储后端选项,包括本地文件系统、S3、阿里云 OSS、Azure Blob 存储等。你可以根据需求选择适合的存储后端。

  7. 镜像拉取加速:Harbor 可以作为本地的 Docker 镜像加速器,显著提高 Docker 镜像的拉取速度。当你在内部网络中部署 Harbor 时,它可以减少从公共 Docker Hub 下载镜像的网络延迟。

  8. 企业级运维工具:除了 Docker 镜像仓库功能,Harbor 还提供了一些企业级运维工具,如镜像复制、镜像标记、垃圾回收等,帮助你更好地管理镜像。

  9. 容器镜像漏洞扫描:Harbor 集成了容器镜像漏洞扫描工具,可以对上传到仓库的镜像进行安全扫描,发现和修复可能存在的漏洞。

  10. 日志和审计:Harbor 记录了用户的操作日志和审计信息,帮助你了解仓库的使用情况,并跟踪用户的操作历史。

  11. 灵活的配置:Harbor 提供了丰富的配置选项,允许你根据自己的需求调整仓库的行为和性能。

Harbor 是一个功能强大的 Docker 镜像仓库和运维工具,适用于企业或组织内部的 Docker 镜像管理。它提供了高级的安全性和权限管理功能,帮助用户实现对 Docker 镜像的完全控制,并确保镜像的安全可信。

在这里插入图片描述

Harbor仓库部署

下载harbor源码

https://github.com/goharbor/harbor  #官网
wget https://github.com/goharbor/harbor/releases/download/v2.8.2/harbor-offline-installer-v2.8.2.tgz

我这里没有使用到https使用这里进行了注释

Harbor采用docker-compose安装,所以我们首先安装docker-compose,将其放到/usr/bin

curl -L https://get.daocloud.io/docker/compose/releases/download/v2.10.2/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose

给可执行权限

chmod +x docker-compose 

执行安装脚本

./install.sh

浏览去访问ip

账号:admin 密码:Harbor12345

在这里插入图片描述

在这里插入图片描述

Harbor仓库使用

  • docker指定harbor仓库地址
[root@localhost harbor]# cat harbor.yml
# Configuration file of Harbor

# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname: 192.168.2.99

# http related config
http:
  # port for http, default is 80. If https enabled, this port will redirect to https port
  port: 8089

# https related config
#https:
  # https port for harbor, default is 443
 # port: 443
  # The path of cert and key files for nginx
  #certificate: /your/certificate/path
  #private_key: /your/private/key/path

这里注释了https的内容,同时指定了hostname:192.168.2.99,指定了端口

vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://yfge5xji.mirror.aliyuncs.com"],
"insecure-registries" : ["192.168.2.99:8089"] #根据yml文件进行添加
}

重启docker

systemctl daemon-reload
systemctl restart docker

登入仓库

[root@localhost harbor]# docker login 192.168.2.99:8089
Username: yan
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

  • 创建一个 mjh 仓库

在这里插入图片描述

[root@localhost harbor]# docker tag hello-world:latest 192.168.2.99:8089/mjh/hello-world:1.0
[root@localhost harbor]# docker push 192.168.2.99:8089/mjh/hello-world:1.0
The push refers to repository [192.168.2.99:8089/mjh/hello-world]
01bb4fce3eb1: Pushed 
1.0: digest: sha256:7e9b6e7ba2842c91cf49f3e214d04a7a496f8214356f41d81a6e6dcad11f11e3 size: 525

  • 打标签上传镜像 至 mjh 仓库
docker tag hello-world:latest 192.168.2.99:8089/mjh/hello-world:1.0
docker tag ydhflask11:2.0 192.168.2.99:8089/mjh/myflask:1.0
docker push 192.168.2.99:8089/mjh/hello-world:1.0
docker push 192.168.2.99:8089/mjh/myflask:1.0

在这里插入图片描述

下载镜像

删除本地镜像测试

docker rmi hello-world
docker pull 192.168.2.99:8089/mjh/hello-world:1.0

这是harbor仓库给出的拉取命令,一样可以

docker pull 192.168.2.99:8089/mjh/hello-world@sha256:7e9b6e7ba2842c91cf49f3e214d04a7a496f8214356f41d81a6e6dcad11f11e3

在这里插入图片描述

查看本地镜像

[root@localhost harbor]# docker images
REPOSITORY                          TAG            IMAGE ID       CREATED         SIZE
...
192.168.2.99:8089/mjh/hello-world   1.0            9c7a54a9a43c   2 months ago    13.3kB
...

可以看到镜像已经被垃圾下来了,harbor可以正常使用

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

jmeter接口测试、压力测试简单实现

jmeter测试的组件执行顺序: 测试计划—>线程组—>配置元件—>前置处理器—>定时器—>逻辑控制器—>取样器—>后置处理器—>断言—>监听器 组件的作用范围: 同级组件同级组件下的子组件父组件 目前市面上的三类接口 1、基…

PyCharm安装pip依赖,如何添加国内镜像源?

目录 前言 PyCharm如何安装依赖 PyCharm如何配置国内镜像源 前言 首先我们都知道,使用pip安装依赖的方式,却很少有人知道使用PyCharm如何安装依赖。 PyCharm如何安装依赖 但你会发现,基本都是安装失败的,因为你是去外网下载的…

[JAVAee]文件操作-IO

本文章讲述了通过java对文件进行IO操作 IO:input/output,输入/输出. 建议配合文章末尾实例食用 目录 文件 文件的管理 文件的路径 文件的分类 文件系统的操作 File类的构造方法 File的常用方法 文件内容的读写 FileInputStream读取文件 构造方法 常用方法 Scan…

探索容器镜像安全管理之道

邓宇星,Rancher 中国软件架构师,7 年云原生领域经验,参与 Rancher 1.x 到 Rancher 2.x 版本迭代变化,目前负责 Rancher for openEuler(RFO)项目开发。 最近 Rancher v2.7.4 发布了,作为一个安全更新版本,也…

【bar堆叠图形绘制】

绘制条形图示例 在数据可视化中,条形图是一种常用的图表类型,用于比较不同类别的数据值。Python的matplotlib库为我们提供了方便易用的功能来绘制条形图。 1. 基本条形图 首先,我们展示如何绘制基本的条形图。假设我们有一个包含十个类别的…

ElasticSearch 7.x

前言 elastic表示可伸缩,search表示查询。所以es的核心即为查询。通常情况下,我们的数据可以分为三类:结构化数据、非结构化数据、半结构化数据。 结构化数据:一般会用特定的结构来组织和管理数据,表现为二维表结构。…

【Android常见问题(五)】- Flutter项目性能优化

文章目录 知识回顾前言源码分析1. 渲染过程2. 分析工具3. 优化方法合理使用const关键词合理使用组件管理着色器编译垃圾 知识回顾 前言 项目迭代开发一定程度后,性能优化是重中之重,其中包括了包体积,UI 渲染、交互等多个方面。 通过 Flutt…

码农该如何延长周末体验感

码农该如何延长周末体验感 码农该如何延长周末体验感 码农该如何延长周末体验感1.制定合理的工作计划:2.实践工作与生活的平衡:3.学习新技术或扩展知识领域4.参与开源项目或个人项目:5.与同事或朋友组织活动:6.自己写博客或者总结…

百万数据快速导入导出

百万数据快速导入 pom <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.2.0</version></dependency>Resourceprivate SalariesListener salariesListener;private ExecutorService…

求解方程x^2=a的根,不使用库函数直接求解(不动点迭代法)

首先可以将方程两边同时加上x&#xff0c;&#xff0c;这时候两边同时再除以1x&#xff0c;就得到了&#xff0c;变形为。&#xff08;变性后的迭代式不唯一&#xff0c;这里随便选取一个&#xff09; 当x是准确值的时候&#xff0c;两边应该是相等的&#xff0c;如果x是近似值…

【Git】分支管理之创建、切换、合并、删除分支以及冲突处理

目录 一、理解分支 二、创建、切换、合并分支 三、删除分支 四、冲突处理 五、合并模式 六、合并策略 七、Bug分支处理 八、强制删除分支 一、理解分支 master其实就是一个指针 &#xff0c;他指向的是主分支最近一次commit。我们可以创建新的分支&#xff0c;在新的分…

Arcgis之 KML/KMZ文件转shp

一般我们在Goole Earth上勾画的区域导出后都为KML或者KMZ格式的&#xff0c;但无法在arcgis等软件上直接应用&#xff0c;故需进行一定的转换 1.打开ArcMap&#xff0c;选择ArcToolbox->Conversion Tools->From KML->KML To Layer 得到如下结果&#xff08;由于本KML…

请问学JavaScript 前要学html 和css 吗?

前言 html和css可以理解为是一个网站的骨架和皮肤&#xff0c;这两部分做好后整个网站的外观展示的完成度基本就有了个90%左右&#xff0c;所以在学习js前是需要学习html和css 的&#xff0c;这两部分不用花特别多的时间&#xff08;虽然css如果想做一些非常炫酷的效果个人认为…

什么是SVM算法?硬间隔和软间隔的分类问题

SVM全称是supported vector machine(支持向量机)&#xff0c;即寻找到一个超平面使样本分成两类&#xff0c;并且间隔最大。 SVM能够执行线性或⾮线性分类、回归&#xff0c;甚至是异常值检测任务。它是机器学习领域最受欢迎的模型之一。SVM特别适用于中小型复杂数据集的分类。…

MobaXterm通过SSH访问Ubuntu服务器遇到的一个问题

在Windows下的MobaXterm界面配置完ubuntuIP以后显示access denied&#xff0c;排查发现是因为在ubuntu那边忘记安装了SSH Serve&#xff0c;安装过程如下&#xff1a; 第一步&#xff1a;安装所需包 让我们从打开终端输入一些必要命令开始。 注意&#xff0c;在安装新的包或…

SpringBoot统一异常处理和统一返回格式

上篇博客我们讲解了使用AOP来进行统一的用户登录判断&#xff0c;其实像这种功能统一且使用较多的地方&#xff0c;都可以用AOP来处理&#xff0c;除了统⼀的⽤户登录判断之外&#xff0c;AOP 还可以实现&#xff1a; 统⼀⽇志记录统⼀⽅法执⾏时间统计&#xff08;在性能优化…

机器学习:混合高斯聚类GMM(求聚类标签)+PCA降维(3维降2维)习题

使用混合高斯模型 GMM&#xff0c;计算如下数据点的聚类过程&#xff1a; Datanp.array([1,2,6,7]) 均值初值为: μ1,μ21,5 权重初值为: w1,w20.5,0.5 方差: std1,std21,1 K2 10 次迭代后数据的聚类标签是多少&#xff1f; 采用python代码实现&#xff1a; from scipy import…

人工智能-Dlib+Python实现人脸识别(人脸识别篇)

人脸识别流程 人脸检测,人脸数据提取:首先是检测到人脸保存人脸数据:可以保存到mysql数据库中mysql数据库连接mysql数据库安装mysql数据库操作设置人脸数据标签:(人脸名字),保存到数据库打开摄像头,检测到人脸,提取人脸数据:人脸数据与数据库中的数据对比,1、人脸检…

【图论】Prim算法

一.介绍 Prim算法是一种用于解决最小生成树问题的贪心算法。最小生成树问题是指在一个连通无向图中找到一个生成树&#xff0c;使得树中所有边的权重之和最小。 Prim算法的基本思想是从一个起始顶点开始&#xff0c;逐步扩展生成树&#xff0c;直到覆盖所有顶点。具体步骤如下…

用合成数据训练托盘检测模型【机器学习】

想象一下&#xff0c;你是一名机器人或机器学习 (ML) 工程师&#xff0c;负责开发一个模型来检测托盘&#xff0c;以便叉车可以操纵它们。 ‌你熟悉传统的深度学习流程&#xff0c;已经整理了手动标注的数据集&#xff0c;并且已经训练了成功的模型。 推荐&#xff1a;用 NSDT设…