docker私有仓库部署与管理
一、搭建本地公有仓库
1.1 首先下载registry镜像
docker pull registry

1.2 在daemon.json文件中添加私有镜像仓库地址并重新启动docker服务
vim /etc/docker/daemon.json

1.3 运行registry容器
docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always--name registry registry:latest

1.4 下载centos镜像
docker run centos:7 /usr/bin/bash -c ls /

1.5 为镜像打上标签并上传到仓库
docker tag centos:7 当前IP地址:5000/centos:v1
docker push 当前IP地址:5000/centos:v1

1.6 列出私有仓库的所有镜像以及centos镜像有哪些tag
curl http://当前IP地址:5000/v2/_catalog
curl http://当前IP地址:5000/v2/centos/tags/list

1.7 删除centos镜像
docker images
docker rmi centos:7
docker rmi 容器ID号

1.8 查看所有镜像查看centos是否被删除
docker images

1.9 从仓库下载centos镜像
docker pull 192.168.10.10:5000/centos:v1
docker images

二、harbor简介
2.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。
2.2 harbor特性
- 基于角色控制:用户和仓库都是基于项目进行组织的,而用户在项目中可以拥有不同的权限。
- 基于镜像的复制策略:镜像可以在多个Harbor实例之间进行复制(同步)。
- 支持LDAP/AD:Harbor 可以集成企业内部已有的 AD/LDAP(类似数据库的一张表),用于对已经存在的用户认证和管理。
- 镜像删除和垃圾回收:镜像可以被删除,也可以回收镜像占用的空间。
- 图形化用户界面:用户可以通过浏览器来浏览,搜索镜像仓库以及对项目进行管理。
- 审计管理:所有针对镜 像仓库的操作都可以被记录追溯,用于审计管理。
- 支持RESTful API:RESTful API 提供给管理员对于 Harbor 更多的操控, 使得与其它管理软件集成变得更容易。
- Harbor和docker registry的关系:Harbor实质上是对docker registry做了封装,扩展了自己的业务模板。
2.3 harbor构成
Harbor 在架构上主要有 Proxy、Registry、Core services、Database(Harbor-db)、Log collector(Harbor-log)、Job services六个组件。
- proxy反向代理:通过一个前置的发现代理统一接收浏览器、docker客户端的请求,并且请求转发给后端不同的服务
- registry:负责存储docker镜像,处理docker的pull/push命令来做上传和下载
- core services:harbor的核心功能包括:
-
ui:提供图像界面
-
webhook:网站一些服务功能(通知机制)
-
token(令牌):提供身份验证服务
-
- log collector:负责日志(其他的组件日志、上传、下载、用户、访问)收集,以供后期进行分析和健康检查
- database:提供数据库服务,主要记录数据库镜像的元信息以及用户的身份信息
- job services:用于镜像复制,本地镜像可以被同步到远程harbor实例上
2.3.1 认证三种方式
- 令牌
- 用户密码
- ssl
2.4 总结
Harbor 的每个组件都是以Docker容器的形式构建的,因此,使用Docker Compose来对它进行部署。
总共分为7个容器运行,通过在docker-compose.yml所在目录中执行docker-compose ps命令来查看, 名称分别为:nginx、harbor-jobservice、harbor-ui、harbor-db、harbor-adminserver、registry、harbor-log。
其中harbor-adminserver主要是作为一个后端的配置数据管理,并没有太多的其他功能。harbor-ui所要操作的所有数据都通过harbor-adminserver这样一个数据配置管理中心来完成。
解释:adminserver(管理员):用于管理用户操作以及身份认证等
2.5 harbor实验部署
2.5.1 前期准备
| IP地址 | 服务 | |
|---|---|---|
| harbor服务器 | 192.168.10.9 | docker-ce、docker-compose、harbor-offline-v1.2.2 |
| client客户端 | 192.168.10.7 | docker-ce |
2.5.2 在harbor实验部署
curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version

2.5.3 服务端部署harbor服务
2.5.3.1 下载harbor压缩包并解压到指定位置
cd /opt/
将harbor-offline-installer-v1.2.2.tgz和docker-compose-1.25.0转移到当前xshell下
tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/
或者tar xf harbor-offline-installer-v1.2.2.tgz -C /usr/local/
mv docker-compose-1.25.0 /usr/local/bin


2.5.3.2 修改harbor安装的配置文件
在配置文件下修改您当前harbor服务器的IP地址
cd /usr/local/harbor
vim /usr/local/harbor/harbor.cfg


2.5.3.3 启动harbor服务
cd /usr/local/harbor/
./prepare
./install.sh

2.5.3.4 查看harbor启动的镜像
docker-compose ps

2.5.3.5 网页登录harbor
请输入您的IP地址/harbor,然后输入用户名和密码登入harbor


2.5.3.6 创建一个项目
点击项目,新建项目输入项目名称,查看项目名称



2.5.3.7 登录harbor
docker login -u admin -p Harbor12345 http://127.0.0.1
或者 docker login -u admin -p Harbor12345 http://您当前的本机地址

2.5.3.8 下载nginx
docker pull nginx

2.5.3.9 为镜像打上标签
docker tag nginx:latest 127.0.0.1/myproject-xxx/nginx:v1
或者docker tag nginx:latest 您的IP地址/mysproejct-xxx/nginx-v1
docker images

2.5.3.10 上传镜像到仓库
docker push 127.0.0.1/myproject-xxx/nginx:v1

2.5.3.11 查看是否传送到仓库中

2.5.4 客户端操作
2.5.4.1 登录harbor仓库
docker login -u admin -p Harbor12345 http://您harbor服务器的IP地址

2.5.4.1.1 解决方式一
在/usr/lib/systemd/system/docker.service里编辑
vim /usr/lib/sysetmd/system/docker.service

2.5.4.1.2 解决方式二
在daemon.json里进行编辑
vim /etc/docker/daemon.json

2.5.4.2 重新启动服务,再次登录harbor
systemctl daemon-reload
systemctl restart docker
docker login -u admin -p Harbor12345 http://您当前Harbor服务器的IP地址

2.5.4.3 仓库下载镜像并查看
docker pull 您当前harbor服务器的IP地址/myproject-xxx/nginx:v1
docker images


2.5.4.4 仓库下载tomcat
docker pull tomcat

2.5.4.5 标签镜像同时上传到仓库,查看网页仓库是否上传成功
docker tag tomcat:latest 您当前harbor服务器的IP地址/myproject-xxx/tomcat:v2
docker push 您当前harbor服务器的IP地址/myproject-xxx/tomcat:v2


2.5.5 维护管理harbor仓库
2.5.5.1 创建用户


2.5.5.2 添加项目成员
点击成员,新建仓库


2.5.5.3 客户端上使用普通账户操作镜像
2.5.5.3.1 删除tomcat:v2镜像,退出harbor,然后再次用新密码登录harbor
docker rmi 您当前harbor服务器的IP地址/myproject-xxx/tomcat:v2
docker images
docker logout 您harbor服务器的IP地址
docker login -u admin -p Harbor12345 http://您当前harbor服务器的IP地址

2.5.5.3.2 上传tomcat:v3镜像,同时在网页仓库查看
docker push 您当前harbor服务器的IP地址/myproject-xxx/tomcat:v3

2.5.5.4 查看日志信息

2.5.5.5 修改Harbor.cfg配置文件
2.5.5.5.1 删除docker-compose
cd /usr/local/harbor/
docker-compose down -v

2.5.5.5.2 重新生成文件
./prepare

2.5.5.5.3 启动并运行容器
docker-compose up -d
2.5.5.6 移除Harbor服务容器同时保留镜像数据/数据库,同时进行迁移
2.5.5.6.1 删除docker-compose
docker-compose down -v

2.5.5.6.2 查看数据
ls /data/registry/docker/registry/v2/repositories/myproject-xxx/
cd /data/registry/docker/registry/v2/repositories/myproject-xxx/
ls

2.5.5.6.3 打包镜像数据
tar zcvf xxx-registry.tar.gz ./*

2.5.5.6.4 备份内容
ls
cd /usr/local/harbor/
mv /data/registry/docker/registry/v2/repositories/myproject-xxx/xxx-registry.tar.gz /opt/

相关文章:
docker私有仓库部署与管理
一、搭建本地公有仓库 1.1 首先下载registry镜像 docker pull registry 1.2 在daemon.json文件中添加私有镜像仓库地址并重新启动docker服务 vim /etc/docker/daemon.json 1.3 运行registry容器 docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restartal…...
2024第六届济南国际大健康产业博会将于5月27日如期开幕
由山东省城市经济学会、山东省科学养生协会主办的第六届中国(济南)国际大健康产业博览会,将于5月27-29日,在济南黄河国际会展中心盛大举办。 近年来,健康越来越受到大众的重视,在我国经济重要的转型阶段成…...
计算方法实验9:Romberg积分求解速度、位移
任务 输出质点的轨迹 ( x ( t ) , y ( t ) ) , t ∈ { 0.1 , 0.2 , 0.3 , . . . , 10 } (x(t), y(t)), t\in \{0.1, 0.2, 0.3, ..., 10\} (x(t),y(t)),t∈{0.1,0.2,0.3,...,10},并在二维平面中画出该轨迹.请比较M分别取4, 8, 12, 16, 20 时,Romberg积分达…...
设计模式有哪些基本原则
目录 开闭原则(Open Closed Principle) 里氏替换原则(Liskov Substitution principle) 单一职责原则(Single Responsibility Principle,SRP)...
别再出错了!华为交换机到底如何配置access、trunk、hybird端口?
号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部 下午好,我的网工朋友。 我们都知道,网络工程师的工作离不开对交换机的熟练操作。华为交换机的配置,绝对是考验…...
OceanBase 分布式数据库【信创/国产化】- OceanBase 平台产品 - 迁移评估工具 OMA
本心、输入输出、结果 文章目录 OceanBase 分布式数据库【信创/国产化】- OceanBase 平台产品 - 迁移评估工具 OMA前言OceanBase 数据更新架构OceanBase 平台产品 - 迁移评估工具 OMA兼容性评估性能评估导出 OceanBase 数据库对象和 SQL 语句OceanBase 分布式数据库【信创/国产…...
UE5入门学习笔记(六)——编译低版本插件
对于有些低版本的插件,可以通过此方法自己编译到高版本而无需等待插件作者更新 使用工具:如图所示 步骤1:打开cmd,并使用cd命令切换到此目录 步骤2:输入如下指令 RunUAT.bat BuildPlugin -Plugin“路径1” -Package“…...
MySQL全局锁、表级锁、行锁、死锁、索引选择
文章目录 全局锁表级锁表锁元数据锁 MDL 如何安全的给小表添加字段1. 理解和监控长事务2. 使用NOWAIT和WAIT语法示例 3. 选择合适的时间窗口4. 分阶段执行5. 使用在线DDL工具 行锁死锁普通索引和唯一索引的选择索引基础业务场景分析性能考量实践建议索引及其选择机制索引选择错…...
深入解析算法效率核心:时间与空间复杂度概览及优化策略
算法复杂度,即时间复杂度与空间复杂度,衡量算法运行时资源消耗。时间复杂度反映执行时间随数据规模增长的关系,空间复杂度表明额外内存需求。优化策略,如选择合适数据结构、算法改进、循环展开等,对于提升程序效率、减…...
虚拟机装CentOS镜像
起先,是先安装一个VM虚拟机,再去官方网站之类的下载一些镜像,常见镜像有CentOS镜像,ubantu镜像,好像还有一个树莓还是什么的,软件这块,日新月异,更新太快,好久没碰&#…...
SpringCloud 集成consul,消费者报I/O error on GET request for...
创建消费者微服务,去调用生产者微服务的请求过程中,出现以下错误: 报错原因 因为在使用SpringCloudAlibaba中的Nacos框架时,自动整合了SpringCloud中的Ribbon框架中的负载均衡,因为微服务提供者有两个,在消…...
pytest的测试标记marks
引用打标的marks文档 Python的pytest框架(5)--测试标记(Markers)_pytest执行指定的marker-CSDN博客 https://www.cnblogs.com/pipile/p/12696226.html 给用例自定义打标签的代码示例 #coding:utf-8 import pytest pytest.mark.smoke def test_1():print("smoke的测试用…...
端口占用解决方法
1、查询端口 打开cmd命令提示符窗口,输入以下指令查询所有端口 netstat -ano //查询所有端口 netstat -ano|findstr 8080 //查询指定端口 2、杀死进程 taskkill /t /f /im 进程号(PID)...
Java毕设之基于springboot的医护人员排班系统
运行环境 开发语言:java 框架:springboot,vue JDK版本:JDK1.8 数据库:mysql5.7(推荐5.7,8.0也可以) 数据库工具:Navicat11 开发软件:idea/eclipse(推荐idea) 系统详细实现 医护类型管理 医护人员排班系统的系统管理员可以对医护类型添加修改删除以及…...
OpenCV4.8 VS2019 MFC编程出现的诡异现象
OpenCV4.8及OpenCV4.4 VS2019MFC编程在调用imred()函数时,debug X64试运行没问题。 release X64试运行时出现下面错误。 void CEasyPictureDlg::OnBnClickedOpen() {CFileDialog fdlg(TRUE, NULL, 0, OFN_HIDEREADONLY | OFN_OVERWRITEPROMP…...
游戏辅助 -- 三种分析角色坐标方法(CE、xdbg、龙龙遍历工具)
所用工具下载地址: https://pan.quark.cn/s/d54e7cdc55e6 在上次课程中,我们成功获取了人物对象的基址:[[[0xd75db8]1C]28],而人物血量的地址则是基址再加上偏移量278。 接下来,我们需要执行以下步骤来进一步操作&a…...
【VTKExamples::Rendering】第一期 TestAmbientSpheres(环境照明系数)
很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享VTK样例TestAmbientShperes,介绍环境照明系数对Actor颜色的影响,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动…...
代码随想录leetcode200题之栈与队列
目录 1 介绍2 训练3 参考 1 介绍 本博客用来记录代码随想录leetcode200题中栈与队列部分的题目。 2 训练 题目1:232. 用栈实现队列 C代码如下, #include <stack>class MyQueue { private:stack<int> a;stack<int> b; //辅助栈 pu…...
使用Python实现2048小游戏
使用Python实现2048小游戏源码分享。实现效果如下所示。 实现效果图 游戏开始效果图 游戏结束效果图 部分源码截图 下载链接 基于如下的运行环境。运行需要安装tkinter /Library/Frameworks/Python.framework/Versions/3.7/bin/python/bin/python /Users/nihui/Documents/P…...
漏洞管理是如何在攻击者之前识别漏洞从而帮助人们阻止攻击的
漏洞管理 是主动查找、评估和缓解组织 IT 环境中的安全漏洞、弱点、差距、错误配置和错误的过程。该过程通常扩展到整个 IT 环境,包括网络、应用程序、系统、基础设施、软件和第三方服务等。鉴于所涉及的高成本,组织根本无法承受网络攻击和数据泄露。如果…...
eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...
stm32进入Infinite_Loop原因(因为有系统中断函数未自定义实现)
这是系统中断服务程序的默认处理汇编函数,如果我们没有定义实现某个中断函数,那么当stm32产生了该中断时,就会默认跑这里来了,所以我们打开了什么中断,一定要记得实现对应的系统中断函数,否则会进来一直循环…...
职坐标物联网全栈开发全流程解析
物联网全栈开发涵盖从物理设备到上层应用的完整技术链路,其核心流程可归纳为四大模块:感知层数据采集、网络层协议交互、平台层资源管理及应用层功能实现。每个模块的技术选型与实现方式直接影响系统性能与扩展性,例如传感器选型需平衡精度与…...
基于小程序老人监护管理系统源码数据库文档
摘 要 近年来,随着我国人口老龄化问题日益严重,独居和居住养老机构的的老年人数量越来越多。而随着老年人数量的逐步增长,随之而来的是日益突出的老年人问题,尤其是老年人的健康问题,尤其是老年人产生健康问题后&…...
【threejs】每天一个小案例讲解:创建基本的3D场景
代码仓 GitHub - TiffanyHoo/three_practices: Learning three.js together! 可自行clone,无需安装依赖,直接liver-server运行/直接打开chapter01中的html文件 运行效果图 知识要点 核心三要素 场景(Scene) 使用 THREE.Scene(…...
