harbor私有镜像仓库,搭建及管理

news2024/11/16 22:26:17

私有镜像仓库

docker-distribution docker的镜像仓库,默认端口号5000

做个仓库,把镜像放里头,用什么服务,起什么容器

vmware公司在docker私有仓库的基础上做了一个web页面,是harbor

docker可以把仓库的镜像下载到本地,也可以直接用私有仓库的镜像启动容器

云服务商的镜像加速器,就是云服务商做的私有镜像仓库,供云服务商的用户使用

registry镜像仓库tag格式

registry:5000/img/img:tag

仓库地址 路径 镜像名称和标签

路径不需要提前创建

~]# docker tag  nginx:latest registry:5000/img/myimg:nginx
#  上传镜像之前,先要给镜像改名字,才能识别把镜像放在什么仓库的什么路径下
~]# docker push  registry:5000/img/myimg:nginx 

镜像仓库的library路径比较特别,是默认路径

创建容器时,不写路径,默认就是library

容器可以映射宿主机的目录

部署harbor镜像仓库

官方把harbor做成了compose项目,

部署harbor服务器:

1. 给harbor主机安装docker环境,因为harbor是以docker-compose的方式部署的

]# dnf -y install docker-ce
]# systemctl enable docker --now

2. harbor仓库没有域名,只能使用主机名。所以要在harbor主机的/etc/hosts做好映射

]# tail -1 /etc/hosts
192.168.1.30  harbor

3. 用跳板机把harbor软件包传给harbor主机,harbor是一个绿色软件,不用安装,解压就可以用,比如解压到/usr/local/目录下

# proxy主机操作]# rsync -av  harbor-v2.9.2.tgz   192.168.1.30:/root/

# harbor主机操作
]# tar  -zxf  harbor-v2.9.2.tgz   -C /usr/local/
]# cd  /usr/local/harbor/
]# tree
.
├── common.sh
├── harbor.v2.9.2.tar.gz           #  镜像
├── harbor.yml.tmpl
├── install.sh
├── LICENSE
└── prepare
]# docker load -i harbor.v2.9.2.tar.gz   # 导入镜像到本地
]# docker images
REPOSITORY                      TAG       IMAGE ID       CREATED        SIZE
goharbor/harbor-exporter        v2.9.2    xxx           x months ago    xxMB
goharbor/redis-photon           v2.9.2    xxx           x months ago    xxMB
goharbor/trivy-adapter-photon   v2.9.2    xxx           x months ago    xxMB
goharbor/harbor-registryctl     v2.9.2    xxx           x months ago    xxMB
goharbor/registry-photon        v2.9.2    xxx           x months ago    xxMB
goharbor/nginx-photon           v2.9.2    xxx           x months ago    xxMB
goharbor/harbor-log             v2.9.2    xxx           x months ago    xxMB
goharbor/harbor-jobservice      v2.9.2    xxx           x months ago    xxMB
goharbor/harbor-core            v2.9.2    xxx           x months ago    xxMB
goharbor/harbor-portal          v2.9.2    xxx           x months ago    xxMB
goharbor/harbor-db              v2.9.2    xxx           x months ago    xxMB
goharbor/prepare                v2.9.2    xxx           x months ago    xxMB

4. harbor用https协议,https需要一个证书,

]# mkdir tls
]# openssl genrsa  -out tls/cert.key 2048        # 创建私钥
]# openssl req -new -x509 -days 3650  -key tls/cert.key -out tls/cert.crt  -subj "/C=CN/ST=SZ/L=SZ/O=HI/OU=HI/CN=harbor"  #生成证书
]# tree tls/
tls/
├── cert.crt
└── cert.key

5. 启动harbor项目

]# mv  harbor.yml.tmpl harbor.yml
]# vim harbor.yml
05:    hostname: harbor
08:    # http:         # 注释掉http,用https
10:      # port: 80
17:    certificate: /usr/local/harbor/tls/cert.crt   # 证书
18:    private_key: /usr/local/harbor/tls/cert.key   # 密钥
36:    harbor_admin_password: <登录密码>           # 自己设置登录密码
]# ./prepare  #检测项目环境,如果OK,就会生成docker-compose.yml项目文件
]# ls
common     docker-compose.yml    harbor.yml  LICENSE  privkey.pem
common.sh  harbor.v2.9.2.tar.gz  install.sh  prepare  tls
]# docker compose -f docker-compose.yml up -d   # 启动docker项目
# harbor这个docker compose项目开机启动
]# chmod  0755  /etc/rc.d/rc.local 
]# echo   "/usr/bin/docker compose -p harbor start"  >> /etc/rc.d/rc.local 

6. 通过ELB负载均衡443端口发布harbor通过https://elb_ipaddress访问harbor仓库

7. 管理员admin,通过菜单栏:系统管理-->用户管理创建普通用户

8. docker1主机进行本机域名解析

~]# tail -1 /etc/hosts
192.168.1.30  harbor

9. harbor仓库信息添加docker主机docker知道这么仓库

添加信任主机(证书,自己做的需要,授权机构认证的不需要)

]# cat /etc/docker/daemon.json
{
   "registry-mirrors": ["https://harbor:443", "https://words.mirror.swr.examplecloud.com"],
   "insecure-registries": ["harbor:443"]
]# systemctl restart docker
]# docker info  |grep -A2 harbor 
  harbor:443                  # docker已识别harbor仓库
  127.0.0.0/8
 Registry Mirrors:
  https://harbor:443/        # docker已识别harbor仓库
  https://words.mirror.swr.examplecloud.com/
 Live Restore Enabled: false

10. 命令行,用创建普通用户,测试登录登出

]# docker login harbor:443
Username: example_name             #  输入用户名
Password:                            #  输入密码
... Your password will be stored in /root/.docker/config.json
...            #  记录登录信息等于开机自动登录不用手动登录
...
Login Succeeded                 # 登录成功

]# docker logout harbor:443
Removing login credentials for harbor:443
~]# cat /root/.docker/config.json
{
        "auths": {}         # 登录信息会删除
}

11. harborregistry区别 registry可以无视路径上传镜像

12. harbor仓库管理

harbor:443/myimg/img:tag

harbor里面概念项目,在web页面左侧菜单栏,第一字段

harbor项目就是harbor路径项目需要提前创建出来如果不

提前创建出来,这个项目就是无法使用的,

谁创建这个项目项目路径管理其他人使用其他名称其他路径

所以上传镜像需要创建项目

创建项目基于web通过web页面创建项目

登录仓库自定义用户需要这个用户创建项目

项目分为两种

一种公共仓库任何人可以访问下载镜像

一种私有仓库只有认证用户可以访问下载

harbor容器集群核心仓库服务

13. 创建三个harbor项目

公共项目k8splugins

私有项目private

14. 上传镜像harbor项目

harbor仓库不管公共还是私有,想上传镜像,都需要提供用户名密码

如何提供docker login

# docker主机操作
]# docker login harbor:443             #  登录harbor仓库
Username: example_name                  # 普通用户用户名
Password:                               # 此用户密码
]# docker images                        # 查看docker主机本地镜像
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
myos         php-fpm   example      xx months ago   x75MB
myos         nginx     example      xx months ago   x74MB
myos         latest    example     xx months ago   x.67MB
myos         httpd     example      xx months ago   x99MB
myos         8.5       example       xx months ago   x49MB
rockylinux   8.5       example        x years ago     x05MB
]# docker tag myos:httpd harbor:443/private/httpd:latest                       
                                   #tag,给本地镜像标签
]# docker push harbor:443/private/httpd:latest 
                #push,上传tag好的镜像到harbor仓库
The push refers to repository [harbor:443/private/httpd]
xxx: Pushed 
xxx: Pushed 
xxx: Pushed 
latest: digest: sha256:xxx size: xxx 

上传成功harborweb页面看到上传镜像httpd

标签可在点击private/httpd看到

15. library项目的所有者是harbor服务器管理员用户

所以普通用户没有权限访问这个项目

如果要访问,需要管理员用户给予权限

授权方法

 管理员用户admin在web界面登录harbor仓库,
 点击library项目
 点击菜单栏关键字"成员"
 添加用户角色选择

授权后,普通用户可以向harbor仓库library项目上传镜像

]# docker push harbor:443/library/myos:latest 
The push refers to repository [harbor:443/library/myos]
xxx: Pushed 
latest: digest: sha256:xxx size: x

docker优秀很多当项目对容器需求量很大docker似乎比较局限于一台机器上运行。大规模集群应用,似乎有一定限制。

大规模容器集群编排管理容易为了解决这个问题各个厂商推出第二个容器管理解决方案就是管理容器集群

docker swarm apache mesoskubernetes

kubernetes符合市场需求

所以现在主流容器集群编排管理工具主要kubernetes也就是k8s

k8s为首时代称为云原生

应该可以这么理解

docker管理容器、镜像以及镜像仓库工具

k8s管理容器集群工具

harbor是提供镜像仓库工具

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

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

相关文章

docker入门总结(附错误处理,持续更新)

安装、启动、卸载 卸载掉旧版本的 Docker yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engineDocker安装&#xff08;选其一&#xff09;…

CTC loss 博客转载

论文地址&#xff1a; https://www.cs.toronto.edu/~graves/icml_2006.pdf 为了对应这个图&#xff0c;我们假设一种符合的模型情况&#xff1a; 英文OCR&#xff0c;37个类别&#xff08;26个小写字母10个汉字空格&#xff09;&#xff0c;最大输出长度8个字符 模型预测结果…

C++:多态(协变,override,final,纯虚函数抽象类,原理)

目录 编译时多态 函数重载 模板 运行时多态 多态的实现 实现多态的条件 协变 析构函数的重写 override 关键字 final 关键字 重载、重写、隐藏对比 纯虚函数和抽象类 多态的原理 多态是什么&#xff1f; 多态就是有多种形态 多态有两种&#xff0c;分别是编译时…

【Linux-基础IO】C语言文件接口回顾 系统文件概念及接口

目录 一、C语言文件接口回顾 C语言基础知识 C中文件操作示例 二、系统文件概念及接口 重定向基本理解的回顾 文件的基本概念 系统调用接口 open read write close lseek 什么是当前路径 一、C语言文件接口回顾 引言&#xff1a;我们并不理解文件&#xff01;从语…

【JavaEE】——多线程(join阻塞,计算,引用,状态)

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯&#xff0c;你们的点赞收藏是我前进最大的动力&#xff01;&#xff01;希望本文内容能够帮助到你&#xff01; 目录 一&#xff1a;join等待线程结束 1&#xff1a;知识回顾 2&#xff1a;join的功能就是“阻塞等待” …

MK-1000门控管理系统

MK-1000门控系统简介 1.1 前言 中大型仓库一般由多个仓库组成&#xff0c;每个仓库具有上百个仓库门&#xff0c;人工控制仓库门的开启、闭合等耗时耗力&#xff0c;随着电子信息自动化发展&#xff0c;集中控制仓库门成为现实。本系统可通过网络灵活控制某个仓库的某个门开启、…

共轭传热和浸没边界耦合相关的论文的阅读笔记

Diffuse-interface immersed-boundary framework for conjugate-heat-transfer problems https://doi.org/10.1103/PhysRevE.99.053304 三区 混合交错离散体积和非交错离散体积 看不懂&#xff0c;不会 FVM 计算固体体积分数的步骤 对于每一个点&#xff1a; 找固体表面上…

【多维动态规划】64. 最小路径和(面试真题+面试官调整后的题目)

64. 最小路径和 难度&#xff1a;中等 力扣地址&#xff1a;https://leetcode.cn/problems/minimum-path-sum/description/ 1. 原题以及解法 1.1 题目 给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和…

数据库提权【笔记总结】

文章目录 UDF提权以有webshell只有数据库权限条件复现msf工具sql语句提权 MOF提权前言条件复现msf工具php脚本提权 sqlserver提权前言条件xp_cmdshell提权复现 沙盒提权介绍复现 Oracle提权靶场搭建执行任意命令复现 通过注入存储过程提权&#xff08;低权限提升至DBA&#xff…

HTML-DOM模型

1.DOM模型 window对象下的document对象就是DOM模型。 DOM描绘了一个层次化的节点树&#xff0c;每一个节点就是一个html标签&#xff0c;而且每一个节点也是一个DOM对象。 2.操作DOM 2.1.获取DOM对象常用方法 获取DOM对象的常用方法有如下几种&#xff1a; getElementById(…

Linux入门学习:Git

文章目录 1. 创建仓库2. 仓库克隆3. 上传文件4. 相关问题4.1 git进程阻塞4.2 git log4.3 上传的三个步骤在做什么4.4 配置邮箱/用户名 本文介绍如何在Linux操作系统下简单使用git&#xff0c;对自己的代码进行云端保存。 1. 创建仓库 &#x1f539;这里演示gitee的仓库创建。…

Linux 基础IO 1

文件操作 基础IO 在程序中若需要读取文件数据或者将数据永久存入需要使用文件因为程序的产生的数据都是在内存中的&#xff0c;只要关闭程序就会释放掉不会&#xff0c;所以在一些程序中我们难免需要对文件进程操作。无论我们是存入数据还是提取数据前提是有这个数据并清楚它…

VGG16模型实现新冠肺炎图片多分类

1. 项目简介 本项目的目标是通过深度学习模型VGG16&#xff0c;实现对新冠肺炎图像的多分类任务&#xff0c;以帮助医疗人员对患者的影像进行快速、准确的诊断。新冠肺炎自爆发以来&#xff0c;利用医学影像如X光和CT扫描进行疾病诊断已成为重要手段之一。随着数据量的增加&am…

联想(lenovo) 小新Pro13锐龙版(新机整理、查看硬件配置和系统版本、无线网络问题、windows可选功能)

新机整理 小新pro13win10新机整理 查看硬件配置和系统版本 设置-》系统-》系统信息 无线网络问题 部分热点可以&#xff0c;部分不可以 问题&#xff1a;是因为自己修改了WLAN的IP分配方式为手动分配&#xff0c;导致只能在连接家里无线网的时候可以&#xff0c;连接其他…

51单片机——独立按键

一、独立按键对应单片机P3管脚&#xff0c;如图 二、按键点亮LED灯 #include <STC89C5xRC.H> void main() { while(1) { if(P300) { P200; } else { P201; } } } 当按键为0时&#xff0c;代表按下&#xff0c;所以当P30按下时&#xff0c;让P20&#xff1d;0&#…

Java面试篇基础部分-ReentrantLock详解

ReentrantLock 是继承了Lock接口,并且实现了再接口中定义的方法,属于一个可重入的独占锁。ReentrantLock 通过自定义队列同步器(Abstract Queued Synchroinzed,AQS)来实现锁的获取与释放。   那么什么是独占锁呢?独占锁就是指这个锁在同一时刻只能被一个线程所获取到,…

2024年最新网络协议分析器Wireshark抓包详细教程(更新中)

网络协议分析器 Wireshark 安装 Wireshark 是一个功能强大的网络协议分析器&#xff0c;早期叫作 Ethereal。它主要用于捕获网络数据包&#xff0c;并对这些数据包进行详细的解析和分析&#xff0c;帮助用户深入了解网络通信的细节。它支持多种网络协议&#xff0c;并提供详细…

VM虚拟机下载以及激活

传统的官网已经找不到下载了&#xff0c;这里我将下载好的放在阿里云盘&#xff0c;百度云盘太慢了&#xff0c;懂得都得 阿里云盘分享 下载好了后会是一个exe文件&#xff0c;直接双击运行就可 下载无脑下一步即可&#xff0c;这里不做介绍 下载好了后&#xff0c;需要密钥这里…

如何搭建IP代理池:从零开始的详细指南

在网络应用中&#xff0c;IP代理池是一种非常实用的工具&#xff0c;尤其是在需要大量IP地址进行网络请求时&#xff0c;例如网络爬虫、数据抓取和分布式系统等。通过搭建IP代理池&#xff0c;你可以有效地管理和分配IP地址&#xff0c;避免单一IP地址被封锁&#xff0c;提高网…

高效编程的利器 Jupyter Notebook

目录 前言1. Jupyter Notebook简介1.1 功能特点1.2 使用场景 2. 不同编程工具的对比与效率提升2.1 VS Code&#xff1a;灵活且轻量的代码编辑器2.2 PyCharm&#xff1a;面向专业开发者的集成开发环境2.3 Git&#xff1a;高效协作的版本控制工具2.4 Jupyter Notebook 和 VS Code…