Harbor 镜像仓库

这篇具有很好参考价值的文章主要介绍了Harbor 镜像仓库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

harbor镜像仓库,# Docker,docker,Harbor

目录

一、Harboar概述

1.1 什么是 Harbor

1.2 Harbor优势

1.3 Harbor构成

1.4 Harbor的误区

二、Harbor 安装(http)

2.1 两种方式

2.2 具体安装步骤

2.2.1 先安装Docker和Docker Compose

2.2.2 下载Harbor

2.2.3 harbor.yml 的hostname

2.2.8 镜像推送

三、Harbor部署Https

3.1 生成SSL证书

3.2 Harbor启用HTTPS

3.3 重新配置并部署Harbor

3.4 将数字证书复制到Docker主机


一、Harboar概述


1.1 什么是 Harbor

  • Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。
  • Harbor以 Docker 公司开源的 Registry 为基础,提供了图形管理 UI 、基于角色的访问控制(Role Based AccessControl) 、AD/LDAP 集成、以及审计日志(Auditlogging) 等企业用户需求的功能,同时还原生支持中文。
  • Harbor 的每个组件都是以 Docker 容器的形式构建的,使用 docker-compose 来对它进行部署。用于部署 Harbor 的 docker-compose 模板位于 harbor/docker-compose.yml。

1.2 Harbor优势

  • 基于角色控制:用户和仓库都是基于项目进行组织的,而用户在项目中可以拥有不同的权限。
  • 基于镜像的复制策略:镜像可以在多个Harbor实例之间进行复制(同步)。
  • 支持 LDAP/AD:Harbor 可以集成企业内部已有的 AD/LDAP(类似数据库的一张表),用于对已经存在的用户认证和管理。
  • 镜像删除和垃圾回收:镜像可以被删除,也可以回收镜像占用的空间。
  • 图形化用户界面:用户可以通过浏览器来浏览,搜索镜像仓库以及对项目进行管理。
  • 审计管理:所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
  • 支持 RESTful API:RESTful API 提供给管理员对于 Harbor 更多的操控, 使得与其它管理软件集成变得更容易。
  • Harbor和docker registry的关系:Harbor实质上是对docker registry做了封装,扩展了自己的业务模板。

1.3 Harbor构成


Harbor 在架构上主要有 Proxy、Registry、Core services、Database(Harbor-db)、Log collector(Harbor-log)、Job services 六个组件。

harbor镜像仓库,# Docker,docker,Harbor

官 方 :Harbor

Github:https://github.com/goharbor/harbor

harbor镜像仓库,# Docker,docker,Harbor

1.4 Harbor的误区

误区一: Harbor是负责存储容器镜像的 (Harbor是镜像仓库,那么它就应当是存储镜像的)
其实关于镜像的存储,Harbor使用的是官方的docker registry服务去完成,至于registry是用本地存储或者s3都是可以的,Harbor的功能是在此之上提供用户权限管理、镜像复制等功能,提高使用的registry的效率。

误区二:Harbor镜像复制是存储直接复制 (镜像的复制,很多人以为应该是镜像分层文件的直接拷贝)
其实Harbor镜像复制采用了一个更加通用、高屋建瓴的做法,通过docker registry 的API去拷贝,这不是省事,这种做法屏蔽了繁琐的底层文件操作、不仅可以利用现有docker registry功能不必重复造轮子,而且可以解决冲突和一致性的问题。


二、Harbor 安装(http)


2.1 两种方式

• 在线安装:从Docker Hub下载Harbor相关镜像,因此安装软件包非常小

• 离线安装:安装包包含部署的相关镜像,因此安装包比较大

2.2 具体安装步骤

2.2.1 先安装Docker和Docker Compose

https://github.com/docker/compose/releases

[root@offline-client harbor]# ll
total 500940
-rw-r--r-- 1 root root  12254032 May 15 19:02 docker-compose-Linux-x86_64
-rw-r--r-- 1 root root 500705880 May 15 18:45 harbor-offline-installer-v2.0.0.tgz
[root@offline-client harbor]# 
[root@offline-client harbor]# 
[root@offline-client harbor]# mv  docker-compose-Linux-x86_64 /usr/bin/docker-compose
[root@offline-client harbor]# chmod +x /usr/bin/docker-compose 
[root@offline-client harbor]# 

2.2.2 下载Harbor

使用 tar 包的安装离线安装,下载上传到服务器。

https://github.com/goharbor/harbor/archive/refs/tags/v2.5.0.tar.gz

## 使用离线下载的 tar包安装
[root@offline-client harbor]# docker-compose --help
[root@offline-client harbor]# ll
total 491056
-rw-r--r-- 1 root root      3361 May 11  2020 common.sh
-rw-r--r-- 1 root root 502808042 May 11  2020 harbor.v2.0.0.tar.gz
-rw-r--r-- 1 root root      7816 May 11  2020 harbor.yml.tmpl
-rwxr-xr-x 1 root root      2523 May 11  2020 install.sh
-rw-r--r-- 1 root root     11347 May 11  2020 LICENSE
-rwxr-xr-x 1 root root      1856 May 11  2020 prepare
[root@offline-client harbor]# 
[root@offline-client harbor]# cp harbor.yml.tmpl harbor.yml
[root@offline-client harbor]# 
[root@offline-client harbor]# 

2.2.3 harbor.yml 的hostname

先注释掉 https 的连接方式

harbor镜像仓库,# Docker,docker,Harbor

服务器登录成功, 输入用户名和密码,可以创建客户分配对应的项目权限

harbor镜像仓库,# Docker,docker,Harbor

进入项目,点击镜像仓库 我们可以看到对应的镜像推送命令

harbor镜像仓库,# Docker,docker,Harbor

2.2.8 镜像推送

harbor镜像仓库,# Docker,docker,Harbor

查看是否推送成功

harbor镜像仓库,# Docker,docker,Harbor


三、Harbor部署Https


3.1 生成SSL证书

cfssl 下载地址:harbor-https-cfssl生成证书_harbor证书生成-kubernetes文档类资源-CSDN下载

分别执行 cfssl.sh 和 certs.sh 脚本 生成证书。"harbor.winnerinf.com"仓库地址换成自己的。

### 下面的证书生成工具可以自己下载,并移动到 /usr/bin目录
[root@docker-harbor ca]# cat cfssl.sh 
wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64
chmod +x cfssl*
mv cfssl_linux-amd64 /usr/bin/cfssl
mv cfssljson_linux-amd64 /usr/bin/cfssljson
mv cfssl-certinfo_linux-amd64 /usr/bin/cfssl-certinfo

### 生成相应的证书
[root@docker-harbor ca]# cat certs.sh 
cat > ca-config.json <<EOF
{
  "signing": {
    "default": {
      "expiry": "87600h"
    },
    "profiles": {
      "kubernetes": {
         "expiry": "87600h",
         "usages": [
            "signing",
            "key encipherment",
            "server auth",
            "client auth"
        ]
      }
    }
  }
}
EOF

cat > ca-csr.json <<EOF
{
    "CN": "kubernetes",
    "key": {
        "algo": "rsa",
        "size": 2048
    },
    "names": [
        {
            "C": "CN",
            "L": "Beijing",
            "ST": "Beijing"
        }
    ]
}
EOF

cfssl gencert -initca ca-csr.json | cfssljson -bare ca -

cat > harbor.winnerinf.com-csr.json <<EOF
{
  "CN": "harbor.winnerinf.com",
  "hosts": [],
  "key": {
    "algo": "rsa",
    "size": 2048
  },
  "names": [
    {
      "C": "CN",
      "L": "BeiJing",
      "ST": "BeiJing"
    }
  ]
}
EOF

cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes harbor.winnerinf.com-csr.json | cfssljson -bare harbor.winnerinf.com 

3.2 Harbor启用HTTPS

编辑 harbor.yml 启用 https 放开

[root@docker-harbor ca]# pwd
/hadoop/software/harbor/ca
[root@docker-harbor ca]# ll
total 44
-rw-r--r-- 1 root root  294 May 28 12:11 ca-config.json
-rw-r--r-- 1 root root  960 May 28 12:11 ca.csr
-rw-r--r-- 1 root root  212 May 28 12:11 ca-csr.json
-rw------- 1 root root 1679 May 28 12:11 ca-key.pem
-rw-r--r-- 1 root root 1273 May 28 12:11 ca.pem
-rw-r--r-- 1 root root 1022 May 28 11:30 certs.sh
-rwxr-xr-x 1 root root  313 May 28 11:30 cfssl.sh
-rw-r--r-- 1 root root  972 May 28 12:11 harbor.winnerinf.com.csr
-rw-r--r-- 1 root root  193 May 28 12:11 harbor.winnerinf.com-csr.json
-rw------- 1 root root 1679 May 28 12:11 harbor.winnerinf.com-key.pem
-rw-r--r-- 1 root root 1322 May 28 12:11 harbor.winnerinf.com.pem
[root@docker-harbor ca]# 



[root@docker-harbor ca]# vim harbor.yml
https:
port: 443
certificate: /hadoop/software/harbor/ca/harbor.winnerinf.com.pem
private_key: /hadoop/software/harbor/ca/harbor.winnerinf.com-key.pem

3.3 重新配置并部署Harbor

[root@offline-client harbor]# ./prepare
###
[root@offline-client harbor]# docker-compose down
[root@offline-client harbor]# docker-compose up -d
Creating network "harbor_harbor" with the default driver
Creating harbor-log ... done
Creating harbor-portal ... done
Creating harbor-db     ... done
Creating registryctl   ... done
Creating redis         ... done
Creating registry      ... done
Creating harbor-core   ... done
Creating harbor-jobservice ... done
Creating nginx             ... done
[root@offline-client harbor]# 

重启后访问就要使用https访问

harbor镜像仓库,# Docker,docker,Harbor

3.4 将数字证书复制到Docker主机

此时 如果使用其他的docker主机登录 Harbor ,需要将证书分发到对应的docker主机

harbor镜像仓库,# Docker,docker,Harbor

登录offline-dn03 docker服务器

[root@offline-dn03 ~]# mkdir /etc/docker/certs.d/harbor.winnerinf.com

登录offline-client docker服务器将证书发送到到offline-dn03 docker服务器

[root@offline-client ssl]# cp harbor.winnerinf.com.pem  harbor.winnerinf.com.crt 
[root@offline-client ssl]# ll
total 48
-rw-r--r-- 1 root root  294 May 15 20:43 ca-config.json
-rw-r--r-- 1 root root  960 May 15 20:43 ca.csr
-rw-r--r-- 1 root root  212 May 15 20:43 ca-csr.json
-rw------- 1 root root 1679 May 15 20:43 ca-key.pem
-rw-r--r-- 1 root root 1273 May 15 20:43 ca.pem
-rw-r--r-- 1 root root 1022 May 15 20:43 certs.sh
-rwxr-xr-x 1 root root  313 May 15 20:43 cfssl.sh
-rw-r--r-- 1 root root 1322 May 15 20:56 harbor.winnerinf.com.crt
-rw-r--r-- 1 root root  972 May 15 20:43 harbor.winnerinf.com.csr
-rw-r--r-- 1 root root  193 May 15 20:43 harbor.winnerinf.com-csr.json
-rw------- 1 root root 1679 May 15 20:43 harbor.winnerinf.com-key.pem
-rw-r--r-- 1 root root 1322 May 15 20:43 harbor.winnerinf.com.pem
[root@offline-client ssl]# 
[root@offline-client ssl]# scp harbor.winnerinf.com.crt offline-dn03:/etc/docker/certs.d/harbor.winnerinf.com/
harbor.winnerinf.com.crt                                                                                                 100% 1322     1.3MB/s   00:00    
[root@offline-client ssl]#

 拷贝到需要访问  harbor的 docker 服务器 就可以 访问 harbor 镜像仓库了。

harbor镜像仓库,# Docker,docker,Harbor

harbor镜像仓库,# Docker,docker,Harbor文章来源地址https://www.toymoban.com/news/detail-544315.html

到了这里,关于Harbor 镜像仓库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【云原生 | Docker 高级篇】11、Docker 私有镜像仓库 Harbor 安装及使用教程

    目录 一、Harbor 介绍 二、Harbor 的优势 三、Harbor 部署安装 3.1 部署环境 3.2 为 Harbor 自签发证书 3.3 安装 Harbor 3.4 设置开机自启 四、Harbor 图像化界面使用说明 4.1 修改本地 hosts 文件 4.2 访问 harbor 4.3 创建项目 五、测试使用 harbor 私有镜像仓库 5.1 修改 docker 配置 5.2 登录 harbor

    2024年01月17日
    浏览(29)
  • Docker|kubernetes|本地镜像批量推送到Harbor私有仓库的脚本

    前言: 可能有测试环境,而测试环境下有N多的镜像,需要批量导入到自己搭建的Harbor私有仓库内,一般涉及到批量的操作,自然还是使用脚本比较方便。 本文将介绍如何把某个服务器的本地镜像 推送到带有安全证书的私有Harbor仓库。 一, ###本例中,私有Harbor仓库的地址是

    2024年02月10日
    浏览(33)
  • docker使用harbor进行镜像仓库管理演示以及部分报错解决

    目录 一.安装harbor和docker-compose 1.下载 2.将该文件修改为这样,修改好自己的hostname和port,后文的用户和密码可以不改也可以改,用于登录 3.安装 二.修改daemon.json文件和/etc/hosts文件 三.使用powershell作windows端域名映射 四.浏览器使用域名登录验证 1.用户admin,密码没有修改默认

    2024年02月10日
    浏览(29)
  • 麒麟V10 ARM 离线生成RabbitMQ docker镜像并上传Harbor私有仓库

    第一步在外网主机执行: docker pull arm 64 v 8 / rabbitmq: 3.8.9 -management 将下载的镜像打包给离线主机集群使用 在指定目录下执行打包命令: 执行:  docker save -o rabbitmq_arm3.8.9.tar arm64v8/rabbitmq:3.8.9-management 如果懒得打包给你飞机票下载镜像包:https://download.csdn.net/download/jiejiegua/88

    2024年02月03日
    浏览(35)
  • 通过docker+cri-dockerd部署k8s集群环境(含harbor镜像仓库)

    目录 一.虚拟机准备 二.基础环境配置(各个节点都做) 1.IP和hosts解析 2.防火墙和selinux 3.安装基本软件 4.配置时间同步 5.禁用swap分区 6.修改内核参数并重载 7.配置ipvs 三.docker环境(各个节点都做) 1.配置软件源并安装docker-ce 2.配置docker加速 四.cri环境配置(各个节点都做)

    2024年02月05日
    浏览(43)
  • Docker使用mysql:5.6和 owncloud 镜像,构建一个个人网盘,安装搭建私有仓库 Harbor

    在网页中输入本机的IP地址 在网页中输入本机的IP地址加上:8080,用户名admin密码Harbor12345。登录成功页面如下:

    2024年02月11日
    浏览(34)
  • 新版K8s:v1.28拉取Harbor仓库镜像以及本地镜像(docker弃用改用containerd,纯纯踩坑)

    使用Kuboard作为k8s集群的管理平台,Harbor作为镜像仓库,拉取Harbor镜像仓库的镜像运行。 从K8s1.24版本之后,k8s就逐渐弃用了docker,采用containerd来管理,这个很重要。 服务器 IP地址 备注 K8sMaster 192.168.2.138 kuboard,Master管理节点 K8sWorker01 192.168.2.139 Worker工作节点 K8sWorker02 192.168.

    2024年01月20日
    浏览(40)
  • harbor(docker仓库)仓库部署

    虽然Docker官方提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的。 Harbor是由VMware公司开源的企业级的Docker Registry管理项目,相比docker官方拥有更丰富的权限权利和完善的架构设计,适用大规模docker集群部署提供仓库服务。

    2024年02月14日
    浏览(32)
  • Docker私有仓库harbor

    目录 Docker私有仓库harbor Harbor私有仓库介绍 Harbor部署 harbor页面不显示排错思路 Harbor的使用 Harbor拉镜像 自制镜像推送到Harbor 自动构建wordpress镜像 部署项目 Harbor 是为企业用户设计的容器镜像仓库开源项目,包括了权限管理(RBAC)、LDAP、审计、安全漏洞扫描、镜像验真、管理界

    2024年02月03日
    浏览(26)
  • 【Docker】docker推送镜像到harbor

    前提条件 首先你需要有一个Harbor的账号,并在harbor中创建一个项目 第一步:安装docker 传送门:【Docker】Docker 快速入门(精讲)/ 二、Docker 安装 第二步:配置镜像源 第三步:重新加载进程 第四步:启动/重启docker 第五步:登录harbor 第六步:tag镜像 第七步:推送镜像 结果:

    2024年02月13日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包