首页 > 其他分享 >Registry&Harbor私有仓库构建

Registry&Harbor私有仓库构建

时间:2024-01-24 09:45:43浏览次数:29  
标签:5000 Harbor 仓库 私有 Registry 镜像 docker registry

一、介绍

  1. Harbor是一个用于存储Docker镜像的企业级Registry服务。
  2. Registry是Dcoker官方的一个私有仓库镜像,可以将本地的镜像打标签进行标记然后push到以Registry起的容器的私有仓库中。企业可以根据自己的需求,使用Dokcerfile生成自己的镜像,并推到私有仓库中,这样可以大大提高拉取镜像的效率

二、Harbor和Registry的比较

    Harbor和Registry都是Docker的镜像仓库,但是Harbor作为更多企业的选择,是因为相比较于Regisrty来说,它具有很多的优势。
    1.提供分层传输机制,优化网络传输
      Docker镜像是是分层的,而如果每次传输都使用全量文件(所以用FTP的方式并不适合),显然不经济。必须提供识别分层传输的机制,以层的UUID为标识,确定传输的对象。
    2.提供WEB界面,优化用户体验
      只用镜像的名字来进行上传下载显然很不方便,需要有一个用户界面可以支持登陆、搜索功能,包括区分公有、私有镜像。
    3.支持水平扩展集群
      当有用户对镜像的上传下载操作集中在某服务器,需要对相应的访问压力作分解。
    4.良好的安全机制
      企业中的开发团队有很多不同的职位,对于不同的职位人员,分配不同的权限,具有更好的安全性。
    5.Harbor提供了基于角色的访问控制机制,并通过项目来对镜像进行组织和访问权限的控制。kubernetes中通过namespace来对资源进行隔离,在企业级应用场景中,通过将两者进行结合可以有效将kubernetes使用的镜像资源进行管理和访问控制,增强镜像使用的安全性。尤其是在多租户场景下,可以通过租户、namespace和项目相结合的方式来实现对多租户镜像资源的管理和访问控制。

三、搭建Registry私有仓库

 1、拉取镜像

docker pull daocloud.io/library/registry:latest

docker pull registry

 2、运行容器

[root@docker ~]# docker run --name "pri_registry" --restart=always -d -p 5000:5000 daocloud.io/library/registry 

[root@docker ~]# docker run -tid --name registry --restart=always -p 5000:5000 -v /data/registry:/var/lib/registry -d registry
#运行该镜像,各个选项含义如下:
# -tid:以后台持久运行,并分配一个可交互的为终端
# --name registry  :给容器定义一个名字
#  --restart=always:该容器可以随着docker服务的启动而启动
# -p:将容器的端口映射到宿主机,冒号前面是宿主机的端口,冒号后面是容器的端口,registry的默认端口是5000
# -v:将宿主机的目录挂载到容器中,冒号前面是宿主机的目录,冒号后面是容器中的目录

3、registry仓库管理

#查看当前的镜像
[root@docker ~]# docker images   #查看当前的镜像
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
cadvisor              latest              0f3e07c0138f        2 weeks ago         220MB
registry            latest              f32a97de94e1        7 months ago        25.8MB


#给镜像打tag  
#更改镜像名称,以便符合私有仓库名称规范
#注:私有仓库镜像的命名规则:192.168.20.7:5000/XXX(宿主机的IP:5000端口/镜像名称)
[root@docker ~]# docker tag cadvisor:latest 192.168.0.212:5000/cadvisor:lates

#定位到上面那行,在后面添加“--insecure-registry”并指定私有仓库的IP及端口,然后保存退出即可
vi vi /etc/docker/daemon.json,添加如下配置:
{
"registry-mirrors":["https://b9pmyelo.mirror.aliyuncs.com"],
"insecure-registries":["192.168.0.212:5000"]
}
[root@docker ~]# systemctl daemon-reload     #重载配置文件
[root@docker ~]# systemctl restart docker    #重启docker服务

#上传镜像至私有仓库
[root@docker ~]# docker push 192.168.0.212:5000/cadvisor:latest     #上传镜像至私有仓库
 
#查看私有仓库中的镜像
curl -X GET http://<registry-url>/v2/_catalog
[root@docker ~]# curl 192.168.0.212:5000/v2/_catalog  
{"repositories":["cadvisor"]}
#查看镜像的详细信息
curl -X GET http://<registry-url>/v2/<image-name>/tags/list
[root@docker ~]# curl 192.168.0.212:5000/v2/cadvisor/tags/list 
{"name":"cadvisor","tags":["latest"]} 

#拉取私有仓库镜像
[root@docker ~]# docker pull 192.168.0.212:5000/cadvisor:latest

注:有密码访问:curl -u <username>:<password> http://<registry-url>/v2/_catalog

3、删除镜像

1、查询digest
[root@master-node ~]# curl -i -sS -H 'Accept: application/vnd.docker.distribution.manifest.v2+json' 'http://192.168.0.212:5000/v2/cadvisor/manifests/latest'
HTTP/1.1 200 OK
Content-Length: 952
Content-Type: application/vnd.docker.distribution.manifest.v2+json
Docker-Content-Digest: sha256:815386ebbe9a3490f38785ab11bda34ec8dacf4634af77b8912832d4f85dca04
Docker-Distribution-Api-Version: registry/2.0
Etag: "sha256:815386ebbe9a3490f38785ab11bda34ec8dacf4634af77b8912832d4f85dca04"
X-Content-Type-Options: nosniff
Date: Tue, 14 Nov 2023 07:25:22 GMT

{
   "schemaVersion": 2,
   "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
   "config": {
      "mediaType": "application/vnd.docker.container.image.v1+json",
      "size": 4416,
      "digest": "sha256:eb12107075737019dce2d795dd82f5a72197eb3c64b2140392eaad3ba3b8a34e"
   },
   "layers": [
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 2065537,
         "digest": "sha256:ff3a5c916c92643ff77519ffa742d3ec61b7f591b6b7504599d95a4a41134e28"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 15291747,
         "digest": "sha256:44a45bb65cdf927ad0da15a15a666253d6cb3b7e2179dd85f44a51aa414a30f8"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 13167749,
         "digest": "sha256:0bbe1a2fe2a6e61d7cccab9eeffe3310e9235ee5cb444b0edcb2bb0a1a220ba9"
      }
   ]
}

2、删除镜像
curl -X DELETE https://192.168.0.212:5000/v2/cadvisor/manifests/sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc

4、web-ui管理registry

docker hub 地址:https://hub.docker.com/r/hyper/docker-registry-web

1、拉取镜像
docker pull hyper/docker-registry-web

2、编辑配置文件 vi config.yml ,配置如下:
registry:
  # Docker registry url
  url: http://192.168.0.212:5000/v2
  # Docker registry fqdn
  name: localhost:5000
  # To allow image delete, should be false
  readonly: false
  auth:
    # Disable authentication
    enabled: false ##如果不需要分用户权限设置,推荐选择false

3、运行容器
docker run -it -p 8083:8080 --name registry-web --link pri_registry -v /home/config.yml:/conf/config.yml:ro -d hyper/docker-registry-web

* --link pri_registry  这边的pri_registry是搭建的registry仓库容器的名字

四、搭建Harbor私有仓库

1、Harbor核心组件解释

  • Proxy:他是一个nginx的前端代理,代理Harbor的registry,UI, token等服务。
  • db:负责储存用户权限、审计日志、Dockerimage分组信息等数据。
  • UI:提供图形化界面,帮助用户管理registry上的镜像, 并对用户进行授权。
  • jobsevice:jobsevice是负责镜像复制工作的,他和registry通信,从一个registry pull镜像然后push到另一个registry,并记录job_log。
  • Adminserver:是系统的配置管理中心附带检查存储用量,ui和jobserver启动时候回需要加载adminserver的配置。
  • Registry:镜像仓库,负责存储镜像文件。
  • Log:为了帮助监控Harbor运行,负责收集其他组件的log,供日后进行分析。

标签:5000,Harbor,仓库,私有,Registry,镜像,docker,registry
From: https://www.cnblogs.com/uestc2007/p/17831587.html

相关文章

  • 代理对象执行私有方法导致注入的属性为null
    代码如下:@ServicepublicclassPerformanceServiceImplimplementsIPerformanceService{privatefinalstaticLoggerlogger=LoggerFactory.getLogger(PerformanceServiceImpl.class);@ResourcePerformanceDaoperformanceDao;@Override......
  • npm ERR! request to https://registry.npm.taobao.org/axios failed, reason: certif
    前言一直使用npmbuild没问题的,突然出现报错:npmWARNinstallUsageofthe`--dev`optionisdeprecated.Use`--only=dev`instead.npmERR!codeCERT_HAS_EXPIREDnpmERR!errnoCERT_HAS_EXPIREDnpmERR!requesttohttps://registry.npm.taobao.org/axiosfailed,......
  • request to https://registry.npm.taobao.org/vue-loader failed!
    npminstall报错:requestto https://registry.npm.taobao.org/vue-loader failed,reason:getaddrinfoENOTFOUNDregistry.npm.taobao.org解决:https://jingyan.baidu.com/article/acf728fd99b16ff8e510a301.html查看镜像源:npmgetregistryhttps://registry.npmjs.org/国......
  • Jira 私有化部署即将停服,你准备好了吗?
    Jira母公司几年前做了全面上云的战略,并制定了在未来几年陆续停止私有化部署产品的销售和服务支持,Jira正是受此影响的产品之一。2月15日为停服的最后期限,目前距离此停服日期已经不足一月。使用私有化部署Jira的用户目前有以下两种解决方案第一种:不用服务支持,继续使用私有......
  • centos7安装harbor配置私有镜像
    准备工作#关闭防火墙systemctlstopfirewalldsystemctldisablefirewalld#关闭SELinux和取消swapsed-i's/enforcing/disabled/'/etc/selinux/configsed-ri's/.*swap.*/#&/'/etc/fstab#主机名,根据你自己的情况来设置echo-e"192.168.50.10centos-k8s-mas......
  • i2c私有数据保存
    相信在i2c驱动中,会经常看到有i2c_set_clientdatai2c_get_clientdata这两个经常碰到,知道就是保存是有数据,但是一直没有跟下去,今天得空跟了一下,一目了然不同的版本内核会有区别,我这个是基于kernel-4.19 首先看下原函数staticinlinevoidi2c_set_clientdata(structi2c_......
  • 冷泉港实验室 (The Cold Spring Harbor Laboratory)
    冷泉港实验室(TheColdSpringHarborLaboratory)又译为科尔德斯普林实验室,是一个非盈利的私人科学研究与教育中心,位于美国纽约州长岛上的冷泉港,此机构的研究对象包括癌症、神经生物学、植物遗传学、基因组学以及生物资讯学,其主要成就为分子生物学领域,在该研究所一共诞生了7......
  • 安装nuxt3报错:Error: Failed to download template from registry: fetch failed
    问题复现:输入命令安装nuxt3pnpmdlxnuxi@latestinitnuxt-app然后出现下面错误ERRORError:Failedtodownloadtemplatefromregistry:fetchfailed 解决方案:配置hosts,Mac中路径是/etc/hosts,在下面追加一行185.199.108.133raw.githubusercontent.com下......
  • openEuler欧拉部署Harbor
    一、系统优化关闭防火墙systemctlstopfirewalldsystemctldisablefirewalld二、安装Harborwgethttps://github.com/goharbor/harbor/releases/download/v2.8.1/harbor-offline-installer-v2.8.1.tgztarxvfharbor-offline-installer-v2.8.1.tgzdf-hmvharbor//homecd......
  • podman configure insecure certificate registry【podman 设置非安全镜像仓库】
    预备条件dockerregistry仓库私搭并配置证书centos7.9部署harbor镜像仓库实践harbor部署入门指南Podman部署私有镜像仓库设置$vim/etc/hosts192.168.23.47registry.ghostwritten.com$vim/etc/containers/registries.conf...[[registry]]location="registry.ghos......