当前位置: 首页 > news >正文

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特性

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

  2.3 harbor构成

    Harbor 在架构上主要有 ProxyRegistryCore servicesDatabase(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.9docker-ce、docker-compose、harbor-offline-v1.2.2
client客户端192.168.10.7docker-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&#xff1a;232. 用栈实现队列 C代码如下&#xff0c; #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 环境&#xff0c;包括网络、应用程序、系统、基础设施、软件和第三方服务等。鉴于所涉及的高成本&#xff0c;组织根本无法承受网络攻击和数据泄露。如果…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

云原生安全实战:API网关Kong的鉴权与限流详解

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关&#xff08;API Gateway&#xff09; API网关是微服务架构中的核心组件&#xff0c;负责统一管理所有API的流量入口。它像一座…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面&#xff0c;gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress&#xff0c;说明目标所使用的cms是wordpress&#xff0c;访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一&#xff1a;使用Read()读取文件2.3、方式二&#xff1a;bufio读取文件2.4、方式三&#xff1a;os.ReadFile读取2.5、写…...

MinIO Docker 部署:仅开放一个端口

MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...

BLEU评分:机器翻译质量评估的黄金标准

BLEU评分&#xff1a;机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域&#xff0c;衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标&#xff0c;自2002年由IBM的Kishore Papineni等人提出以来&#xff0c;…...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划&#xff1a;基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标&#xff1a;为安全大模型创建高质量、去偏、符合伦理的训练数据集&#xff0c;涵盖安全相关任务&#xff08;如有害内容检测、隐私保护、道德推理等&#xff09;。 1.1 数据收集 描…...