如何建立Docker私有仓库?

news2024/9/26 5:21:02

文章目录

  • 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可以正常使用

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

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

相关文章

el-table 设置行背景颜色 鼠标移入高亮问题处理

一、 设置行背景颜色 1. 需求描述 后端返回表格数据,有特定行数需要用颜色标识。类似于以下需求: 2. 解决方式 方式区别:row-class-name“tableRowClassName”已返回类名的形式设置样式,代码整洁,但是会鼠标高亮&#xff0c…

【IDEA】idea不自动生成target

文章目录 1. 不生成target2. 仅部分文件不生成target2.1. 一般原因就是资源没有设置2.2. 配置编译src/main/java文件夹下的资源文件2.3. 清理缓存(王炸) 3. 参考资料 本文描述idea不生成target的几种情况以及处理方法 1. 不生成target 像下图这样根本就…

JavaSwing+MySQL的在线考试系统

点击以下链接获取源码: https://download.csdn.net/download/qq_64505944/88114390?spm1001.2014.3001.5503 JDK1.8 MySQL5.7 功能:开始做题,上一题,下一题,提交,每题都有时间限制

【SpringⅢ】Spring 的生命周期

目录 🥪1 Bean 的作用域 🥩1.1 singleton:单例模式 🍙1.2 prototype:原型模式 🍱1.3 Bean 的其他作用域 🍜2 Spring 生命周期(执行流程) 🥘2.1 启动容器 🍲 2.2 读…

【代理模式】了解篇:静态代理 动态代理~

目录 1、什么是代理模式? 2、静态代理 3、动态代理 3.1 JDK动态代理类 3.2 CGLIB动态代理类 4、JDK动态代理和CGLIB动态代理的区别? 1、什么是代理模式? 定义: 代理模式就是为其他对象提供一种代理以控制这个对象的访问。在某…

图像 检测 - FCOS: Fully Convolutional One-Stage Object Detection (ICCV 2019)

FCOS: Fully Convolutional One-Stage Object Detection - 全卷积一阶段目标检测(ICCV 2019) 摘要1. 引言2. 相关工作3. 我们的方法3.1 全卷积一阶目标检测器3.2 FCOS的FPN多级预测3.3 FCOS中心度 4. 实验4.1 消融研究4.1.1 FPN多级预测4.1.2 有无中心度…

python学习时与chatgpt4对话的一些感悟

今天学SCENIC教程,看到里面有一句不是很懂 If you run this from a python script instead of a Jupyter notebook, please enclose the code in a if __name__ __main__: construct. 现在把和chatgpt4问答的内容发上来,确实是很厉害 没有太看懂&…

Verilog语法学习——LV6_多功能数据处理器

LV6_多功能数据处理器 题目来源于牛客网 [牛客网在线编程_Verilog篇_Verilog快速入门 (nowcoder.com)](https://www.nowcoder.com/exam/oj?page1&tabVerilog篇&topicId301) 题目 描述 根据指示信号select的不同,对输入信号a,b实现不同的运算。输入信号a…

蓝海卓越计费管理系统存在弱口令

连伟人的一生都充满了那么大的艰辛,一个平凡的人吃点苦又算得了什么呢? 漏洞描述 蓝海卓越计费管理系统存在弱口令漏洞 漏洞复现 访问漏洞url: 输入默认的账号密码:admin/admin 登录成功 文笔生疏,措辞浅薄&#…

小米手机MIUI优化的影响

1. 小/红米手机的MIUI优化选项 2. MIUI优化选项的影响 2.1 MIUI优化会影响应用信息展示 MIUI优化选项会影响到应用信息的内容展示,具体如下图所示: 如果我们需要在应用信息里展示自启动入口,那我们就需要开启MIUI优化。 2.2 MIUI优化会影…

C++对C的加强(全)

目录 C对C的加强 命名空间 为什么要使用命名空间 怎么使用命名空间 命名空间的定义 命名空间的使用 使用域解析符 :: 使用using声明 内联命名空间 嵌套命名空间 随时将新的成员加入命名空间 命名空间中 函数的声明和实现分开 无名命名空间 命名空间取别名 使用u…

苍穹外卖day08——地址簿+用户下单+订单支付(做不了)

导入地址簿——需求分析与设计 产品原型 接口设计 数据库设计 导入地址簿——代码导入 导入地址簿——功能测试 没有问题 用户下单——需求分析与设计 业务说明 业务流程 接口设计 数据库设计 用户下单——代码开发 DTO设计和VO设计 Controller层中 RequestMapping(&q…

Clock时钟电路PCB设计布局布线要求

时钟电路就是类似像时钟一样准确运动的震荡电路,任何工作都是依照时间顺序,那么产生这个时间的电路就是时钟电路,时钟电路一般是由晶体振荡器、晶振、控制芯片以及匹配电容组成,如图1所示。 图1 时钟电路 针对时钟电路PCB设计有以…

小白的机器学习之路(四)神经网络的初步认识:基于pytorch搭建自己的神经网络

小白的机器学习之路(四) 引子神经网络的基本结构反向传播算法和激活函数优化器如何通过pytorch搭建自己的BP network 引子 当前交通大数据业务的需要,需要承担一部分算法工作(数据处理),考虑到上次研究深度…

用哪些指标可以抓住现货白银趋势?

在现货白银走势分类中,走势一般来说之分成三类,一个是上升,一个是下跌,还有一个是水平。对于投资者来说,趋势,也就是上升或者下跌是我们喜爱的,那么我们如何捕捉这种趋势呢?我们可以…

【雕爷学编程】MicroPython动手做(02)——尝试搭建K210开发板的IDE环境

知识点:简单了解K210芯片 2018年9月6日,嘉楠科技推出自主设计研发的全球首款基于RISC-V的量产商用边缘智能计算芯片勘智K210。该芯片依托于完全自主研发的AI神经网络加速器KPU,具备自主IP、视听兼具与可编程能力三大特点,能够充分适配多个业务场景的需求。作为嘉楠科…

Verilog语法学习——LV9_使用子模块实现三输入数的大小比较

LV9_使用子模块实现三输入数的大小比较 题目来源于牛客网 [牛客网在线编程_Verilog篇_Verilog快速入门 (nowcoder.com)](https://www.nowcoder.com/exam/oj?page1&tabVerilog篇&topicId301) 题目 描述 在数字芯片设计中,通常把完成特定功能且相对独立的…

C#之泛型

目录 一、概述 二、C#中的泛型 继续栈的示例 三、泛型类 (一)声明泛型类 (二)创建构造类型 (三)创建变量和实例 (四)比较泛型和非泛型栈 四、类型参数的约束 (一…

系统集成中级计算汇总

基本计算: EV 挣值 (实际完成的工作量) AC 实际发生的花费 PV 计划花费(预算) CV 成本 SV 进度 CV 和 SV 的计算 都是通过EV 减去另一个值 CV EV-AC SV EV-PV 成本 chengben C 开头 所以CV 是成本 CV 中有个C 所以用到的是 AC ,另外一个则是剩余的PV CV SV 计算…

LeetCode621.Task-Scheduler<任务调度器>

题目: 思路: 思路个锤子,看完题根本不会写. 看的答案 : 【任务调度器】C 桶子_配图理解 - 任务调度器 - 力扣(LeetCode) 是一种贪心的思想.数学问题. 一个是任务的种类,一个是任务的最大的一个值。 代码是: //cod…