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 环境,包括网络、应用程序、系统、基础设施、软件和第三方服务等。鉴于所涉及的高成本,组织根本无法承受网络攻击和数据泄露。如果…...

接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...

【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...

边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...

页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...

Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...