Harbor仓库概述

Docker官⽅提供了Registry镜像仓库,但是Registry的功能相对简陋。Harbor是VMware公司提供的⼀款镜像仓库,提供了权限控制、分布式发布、强⼤的安全扫描与审查机制等功能.

Harbor 私有仓库,它以 Registry 为基础,提供了对⽤户友好的管理界面,可以帮助我们快速搭建⼀个企业级的 Docker Registry服务。Harbor 的每个组件都是以 Docker 容器的形式构建的,使用 Docker Compose 进行部署。

Harbor优势

基于角色控制:有管理员与普通用户,可赋权普通用户,比如只能上传和下载,可根据项目来进行操作和管理。

基于镜像的复制策略:也与权限相关,比如有只⼀些用户与组才能对此项目进行相对应的操作。

支持持LDAP/AD域控制:比如南京去下载北京harbor私有仓库的镜像,两端打上局域网的地址,连接在⼀块,数据信息的传输通过⼀条隧道,会通过两层加密,第⼀层为隧道加密,第二层为数据加密,安全可靠。

图像删除和垃圾收集:即回收站机制。

图形UI:具有统计功能,比如访问量与镜像下载热度。

Harbor环境准备

主机名 IP地址 系统版本 硬件配置
harbor 10.10.20.129 CentOS 8-Stream 2C/4G

安装docker

#配置阿里云docker-ce镜像源,先安装一些必要的系统工具
[root@harbor ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 #添加软件源信息
[root@harbor ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@harbor ~]# sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo #更新缓存并安装Docker-CE
[root@harbor ~]# yum makecache
[root@harbor ~]# yum -y install docker-ce #查看docker版本
[root@harbor ~]# docker --version
Docker version 24.0.4, build 3713ee1

安装docker-compose

harbor通过docker-compose进⾏管理,需要提前下载docker-compose⼆进制⽂件

#github下载docker-compose
[root@harbor ~]# wget https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-linux-x86_64 #移动⼆进制⽂件到/usr/bin⽬录,并更名为docker-compose
[root@harbor ~]# mv docker-compose-linux-x86_64 /usr/bin/docker-compose #赋予docker-compose可执行权限
[root@harbor ~]# chmod +x /usr/bin/docker-compose #查看docker-compse版本
[root@harbor ~]# docker-compose --version
Docker Compose version v2.20.0

下载Harbor(v2.8.2)

地址:https://github.com/goharbor/harbor/releases/tag/v2.8.2

#下载harbor
[root@harbor ~]# wget https://github.com/goharbor/harbor/releases/download/v2.8.2/harbor-offline-installer-v2.8.2.tgz #解压
[root@harbor ~]# tar xf harbor-offline-installer-v2.8.2.tgz -C ./ #复制一份配置文件
[root@harbor ~]# cd harbor
[root@harbor harbor]# cp harbor.yml.tmpl harbor.yml #修改配置文件
[root@harbor harbor]# vim harbor.yml hostname: 10.10.20.129 #指定Harbor主机地址 http: #访问⽅式为http(不⽤修改)
port: 80 #默认端⼝(不⽤修改) #https: #注释这一行,这一行是https访问⽅式(需要证书才可以使⽤)
#port: 443 #注释这一行 #certificate: /your/certificate/path #注释证书⽂件
#private_key: /your/private/key/path #注释证书⽂件 harbor_admin_password: 111111 #设置访问密码,可自行修改

启动docker,设置开机自启

[root@harbor ~]# systemctl enable --now docker

执行harbor脚本安装

#执⾏预备脚本,下载harbor所需的镜像⽂件(在harbor目录下执行)
[root@harbor ~]# cd harbor
[root@harbor harbor]# ./prepare #执⾏安装脚本(在harbor目录下执行)
[root@harbor harbor]# ./install.sh .....
----Harbor has been installed and started successfully.---- #成功即可 #验证运⾏情况
[root@harbor ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
863643822bd8 goharbor/harbor-jobservice:v2.8.2 "/harbor/entrypoint.…" About a minute ago Up About a minute (healthy) harbor-jobservice
061253b486ad goharbor/nginx-photon:v2.8.2 "nginx -g 'daemon of…" About a minute ago Up About a minute (healthy) 0.0.0.0:80->8080/tcp, :::80->8080/tcp nginx
bdf2a6d90820 goharbor/harbor-core:v2.8.2 "/harbor/entrypoint.…" About a minute ago Up About a minute (healthy) harbor-core
5a3bd54f0ba1 goharbor/harbor-registryctl:v2.8.2 "/home/harbor/start.…" About a minute ago Up About a minute (healthy) registryctl
425bb7851b1f goharbor/registry-photon:v2.8.2 "/home/harbor/entryp…" About a minute ago Up About a minute (healthy) registry
86df3dc32587 goharbor/redis-photon:v2.8.2 "redis-server /etc/r…" About a minute ago Up About a minute (healthy) redis
9ff8ffd86490 goharbor/harbor-db:v2.8.2 "/docker-entrypoint.…" About a minute ago Up About a minute (healthy) harbor-db
66a47caad0d2 goharbor/harbor-portal:v2.8.2 "nginx -g 'daemon of…" About a minute ago Up About a minute (healthy) harbor-portal
ecf3f91416ee goharbor/harbor-log:v2.8.2 "/bin/sh -c /usr/loc…" About a minute ago Up About a minute (healthy) 127.0.0.1:1514->10514/tcp harbor-log

访问harbor UI界面:10.10.20.129

用户名:admin 密码:111111 (前面配置文件设置的密码)

创建⼀个image仓库⽤于存储镜像

点击【新建项⽬】,【访问级别】不勾选【公开】就是私有仓库,反之则是公有仓库,【项目配额限制】中【-1】即为不限制存储容量

配置指定harbor仓库地址

#顺带把镜像加速配一下,使用的是阿里的
[root@harbor ~]# vim /etc/docker/daemon.json { "registry-mirrors": ["https://00ry8okw.mirror.aliyuncs.com"],
"insecure-registries": ["http://10.10.20.129"]
} #停⽌harbor,注意要先进入harbor目录才能执行docker-compose down
[root@harbor ~]# cd harbor
[root@harbor harbor]# docker-compose down #保存配置
[root@harbor harbor]# systemctl daemon-reload #重启docker
[root@harbor harbor]# systemctl restart docker #重启harbor,同上,要在harbor目录下执行
[root@harbor harbor]# docker-compose up -d

镜像上传到Harbor仓库

#下载镜像(nginx等)镜像并上传到harbor仓库
[root@harbor ~]# docker pull nginx
[root@harbor ~]# docker images #登录到harbor仓库上传镜像
[root@harbor ~]# docker login 10.10.20.129
Username: admin
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 #给nginx镜像打标签,后面跟地址,仓库名和标签名
[root@harbor ~]# docker tag nginx:latest 10.10.20.129/image/nginx:v1.0 #推送镜像到Harbor的image仓库
[root@harbor ~]# docker push 10.10.20.129/image/nginx:v1.0

镜像仓库查看

Harbor 容器镜像仓库的更多相关文章

  1. 私有容器镜像仓库harbor

    私有镜像仓库Harbor 1.Harbor概述 Habor是由VMWare公司开源的容器镜像仓库.事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用 ...

  2. 企业级Docker容器镜像仓库Harbor的搭建

    Harbor简述 Habor是由VMWare公司开源的容器镜像仓库.事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理 ...

  3. 搭建Harbor私有镜像仓库--v1.5.1

     搭建Harbor私有镜像仓库--v1.5.1 1.介绍 Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境 ...

  4. 部署Harbor私有镜像仓库

    Harbor私有镜像仓库无坑搭建 目录 1. harbor介绍 2. docker-ce的安装 3. docker-compose的安装 4. Harbor私有仓库的安装 5. 客户端连接镜像仓库配置 ...

  5. Harbor私有镜像仓库(下)

    Harbor私有镜像仓库(下) 链接:https://pan.baidu.com/s/1MAb0dllUwmoOk7TeVCZOVQ 提取码:ldt5 复制这段内容后打开百度网盘手机App,操作更方便 ...

  6. Harbor私有镜像仓库(上)

    上图配置为工作环境 特别注意:win10现在不允许使用私有ca证书,到时登录浏览器会失败,可以选用火狐浏览器. 创建自己的CA证书 openssl req -newkey rsa:4096 -node ...

  7. harbor私有镜像仓库的搭建与使用与主从复制

    harbor私有镜像仓库,私有仓库有两种,一种是harbor,一种是小型的私有仓库,harbor有两种模式,一种是主 从,一种是高可用仓库,项目需求,需要两台服务器,都有docker.ldap权限统一 ...

  8. k8s创建harbor私有镜像仓库

    1. 部署准备 准备harbor软件包 在部署节点上: mv harbor-offline-installer-v1.4.0.tgz /opt/ && cd /opt tar zxvf ...

  9. harbor 私有镜像仓库使用

    使用harbor私有镜像仓库 登录镜像仓库reg.lvusyy.com docker login reg.lvusyy.com [centos@k8smaster ~]$ sudo docker lo ...

  10. Harbor实现容器镜像仓库的管理和运维

    本次分享主要讲述了在开发运维中的管理容器镜像方法.为了便于说明原理,较多地使用Harbor作为例子. 内容主要包括: 开发和生产环境中镜像仓库的权限控制: 镜像远程同步(复制)的原理: 大规模应用镜像 ...

随机推荐

  1. Vuex刷新页面数据会丢失吗?咋解决的?

    1.问题描述:页面刷新的时候vuex里的数据会重新初始化,导致数据丢失.因为vuex里的数据是保存在运行内存中的,当页面刷新时,页面会重新加载vue实例,vuex里面的数据就会被重新赋值. 2.解决思 ...

  2. 2023云数据库技术沙龙MySQL x ClickHouse专场成功举办

    4月22日,2023首届云数据库技术沙龙 MySQL x ClickHouse 专场,在杭州市海智中心成功举办.本次沙龙由玖章算术.菜根发展.良仓太炎共创联合主办.围绕"技术进化,让数据更智 ...

  3. Python 项目:外星人入侵--第三部分

    1.项目内容: 在屏幕左上角添加一个外星人,并指定合适的边框,根据第一个外星人的边距和屏幕尺寸计算屏幕上可容纳多少个外星人. 让外星人群向两边和下方移动,直到外星人被全部击落,有外星人撞到飞船,或有外 ...

  4. 关于java中的super

    首当其冲先说一下super的用途和含义.他是用于调用一些被重写的方法. 这里还可以复习一下子这个重写:重写是把新的方法放在被重写的方法前面.在被重写的子类中,优先调用重写后的方法.但是如果想要调用原本 ...

  5. mapper中sql返回类型是integer,但是sql查询结果是null,报错

    1.出问题代码 当sql返回结果为null时报错    org.apache.ibatis.binding.BindingException: Mapper method 'com.yswl.scie ...

  6. 2021-04-21:手写代码:Dijkstra算法。

    2021-04-21:手写代码:Dijkstra算法. 福大大 答案2021-04-21: Dijkstra算法是一种基于贪心策略的算法.每次新扩展一个路程最短的点,更新与其相邻的点的路程.时间紧,未 ...

  7. 2021-11-21:map[i][j] == 0,代表(i,j)是海洋,渡过的话代价是2, map[i][j] == 1,代表(i,j)是陆地,渡过的话代价是1, map[i][j] == 2,代表

    2021-11-21:map[i][j] == 0,代表(i,j)是海洋,渡过的话代价是2, map[i][j] == 1,代表(i,j)是陆地,渡过的话代价是1, map[i][j] == 2,代表 ...

  8. JVM 优化踩坑记

    本文记录了服务 JVM 优化的过程与思路,有对 JVM GC 原理以及对问题排查方向和工具的介绍,也有走弯路和踩坑,分享出来希望对大家有所帮助. 本文概要 服务异常和排查过程 RPC 接口超时的排查方 ...

  9. Selenium - 基础知识介绍

    Selenium - 基础知识介绍 介绍 Selenium是ThoughtWorks员工在业余时间开发并维护的开源项目,并且在ThoughtWorks的项 目中被广泛应用. 简单地说,Selenium ...

  10. LeetCode 周赛 345(2023/05/14)体验一题多解的算法之美

    本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 往期回顾:LeetCode 双周赛第 104 场 · 流水的动态规划,铁打的结构化思考 周赛概览 T1. 找 ...