如何建立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 portport: 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-storeLogin 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.mzph.cn/news/12889.shtml

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

相关文章

ansible自动化运维(一)

😘作者简介:正在努力的99年公司职员。 👊宣言:人生就是B(birth)和D(death)之间的C(choise),做好每一个选择。 🙏创作不易,…

机器学习 day31(baseline、学习曲线)

语音识别的Jtrain、Jcv和人工误差 对于逻辑回归问题,Jtrain和Jcv可以用分类错误的比例,这一方式来代替单单只看Jtrain,不好区分是否高偏差。可以再计算人类识别误差,即人工误差,作为基准线来进行比较Jtrain与baselin…

回归预测 | MATLAB实现TCN-BiLSTM时间卷积双向长短期记忆神经网络多输入单输出回归预测

回归预测 | MATLAB实现TCN-BiLSTM时间卷积双向长短期记忆神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现TCN-BiLSTM时间卷积双向长短期记忆神经网络多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现TCN-BiLSTM时间卷积…

Thymeleaf入门

Thymeleaf是前端开发模板,springboot默认支持。前端模板用法大多数是类似的jsp、thymeleaf、vue.js都有while\for\if\switch等使用,页面组件化等。 1.前端模板区别 jsp是前后端完全不分离的,jsp页面写一堆Java逻辑。 thymeleaf好处是html改…

非Spring环境 | Mybatis-Plus插入数据返回主键两种方式(注解或XML)

废话不多说&#xff0c;直接撸代码: <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace&qu…

【Spring】什么是Bean的生命周期及作用域,什么是Spring的执行流程?

博主简介&#xff1a;想进大厂的打工人博主主页&#xff1a;xyk:所属专栏: JavaEE进阶 在前面的播客中讲解了如何从Spring中存取Bean对象&#xff0c;那么本篇我们来讲解Bean对象的生命周期是什么&#xff0c;Bean对象的6种作用域分别是什么&#xff0c;都有哪些区别&#xff…

通过STM32内部ADC将烟雾传感器发送的信号值显示在OLED上

一.CubeMX配置 首先我们在CubeMX配置ADC1, 设置一个定时器TIM2定时1s采样一次以及刷新一次OLED&#xff0c; 打开IIC用于驱动OLED显示屏。 二.程序 在Keil5中添加好oled的显示库&#xff0c;以及用来显示的函数、初始化函数、清屏函数等。在主程序中初始化oled,并将其清屏。…

【RTT驱动框架分析02】-串口驱动分析

串口驱动学习 0.串口驱动的使用方法 //定义一个时间 struct rt_event system_event; #define SYS_EVENT_UART_RX_FINISH 0x00000001 /* UART receive data finish event *//*串口接收回调函数 Receive data callback function */ static rt_err_t uart_input(rt_device_t …

掌握Python的X篇_16_list的切片、len和in操作

接上篇掌握Python的X篇_15_list容器的基本使用&#xff0c;本篇进行进一步的介绍。 文章目录 1. list的索引下标可以是负数2. 切片&#xff08;slice&#xff09;2.1 切片基础知识2.2 如何“取到尽头”2.3 按照步长取元素2.4 逆序取值 3. len函数获取lis的元素个数4. in操作符…

rocketmq客户端本地日志文件过大调整配置(导致pod缓存cache过高)

现象 在使用rocketmq时&#xff0c;发现本地项目中文件越来越大&#xff0c;查找发现在/home/root/logs/rocketmqlog目录下存在大量rocketmq_client.log日志文件。 配置调整 开启slf4j日志模式&#xff0c;在项目启动项中增加-Drocketmq.client.logUseSlf4jtrue因为配置使用的…

手把手教你从0入门线段树~

1. 什么是线段树? 1.1 初探线段树 定义&#xff1a;线段树是一种用于解决区间查询问题的数据结构&#xff0c;是一种广义上的二叉搜索树。 原理&#xff1a;它将一个区间划分为多个较小的子区间&#xff0c;并为每个子区间存储一些有用的信息&#xff0c;例如最大值、最小值…

如何降低TCP在局域网环境下的数据传输延迟

以Ping为例。本案例是一个测试题目&#xff0c;只有现象展示&#xff0c;不含解决方案。 ROS_Kinetic_26 使用rosserial_windows实现windows与ROS master发送与接收消息_windows 接收ros1 消息 什么是ping&#xff1f; AI&#xff1a; ping是互联网控制消息协议&#xff08;…

【Spring Boot】

目录 &#x1f36a;1 Spring Boot 的创建 &#x1f382;2 简单 Spring Boot 程序 &#x1f370;3 Spring Boot 配置文件 &#x1f36e;3.1 properties 基本语法 &#x1fad6;3.2 yml 配置文件说明 &#x1f36d;3.2.1 yml 基本语法 &#x1f369;3.3 配置文件里的配置类…

如何将ubuntu LTS升级为Pro

LTS支持周期是5年&#xff1b; Pro支持周期是10年。 Ubuntu Pro专业版笔记 步骤&#xff1a; 打开“软件和更新” 可以看到最右侧的标签是Ubuntu Pro。 在没有升级之前&#xff0c;如果使用下面两步&#xff1a; sudo apt updatesudo apt upgrade 出现如下提示&#xff…

【低代码专题方案】iPaaS运维方案,助力企业集成平台智能化高效运维

01 场景背景 随着IT行业的发展和各家企业IT建设的需要&#xff0c;信息系统移动化、社交化、大数据、系统互联、数据打通等需求不断增多&#xff0c;企业集成平台占据各个企业领域&#xff0c;成为各业务系统数据传输的中枢。 集成平台承接的业务系统越多&#xff0c;集成平台…

【数据结构】时间复杂度和空间复杂度

&#x1f4d9; 作者简介 &#xff1a;RO-BERRY &#x1f4d7; 学习方向&#xff1a;致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f4d2; 日后方向 : 偏向于CPP开发以及大数据方向&#xff0c;欢迎各位关注&#xff0c;谢谢各位的支持 时间复杂度和空间复杂度 前…

diffusion model(五)stable diffusion底层原理(latent diffusion model, LDM)

LDM: 在隐空间用diffusion model合成高质量的图片&#xff01; [论文地址] High-Resolution Image Synthesis with Latent Diffusion Models [github] https://github.com/compvis/latent-diffusion 文章目录 LDM: 在隐空间用diffusion model合成高质量的图片&#xff01;系列…

某ERP系统信息泄露登录后台

漏洞描述 某ERP前台泄露了某api接口,恶意攻击者可通过调用该接口,对用户的账号和密码进行非授权访问,在获取到账号和密码后,恶意攻击者可接管后台。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事…

时间复杂度介绍及其计算

时间复杂度 1.算法效率 如何衡量一个算法的好坏呢&#xff1f;看这段代码&#xff1a; long long Fib(int N) {if(N < 3)return 1;return Fib(N-1) Fib(N-2); }这是斐波那契数列的递归代码&#xff0c;非常简洁&#xff0c;那么这就一定说明它好吗&#xff1f;答案显而易…

Stable Diffusion - 扩展 SegmentAnything 和 GroundingDINO 实例分割算法 插件的配置与使用

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://blog.csdn.net/caroline_wendy/article/details/131918652 Paper and GitHub&#xff1a; Segment Anything: SAM - Segment Anything GitHub: https://github.com/facebookresearch/s…