Docker-harbor私有仓库

docker-compose

docker-harbor私有仓库

docker 镜像  容器   仓库

仓库:保存镜像

私有,自定义用户的形式登陆仓库,拉取或者上传镜像。(内部管理的用户)

harbor:是VMware公司开发的,开源的企业级的 docker registry项目。

帮助用户快速的搭建一个企业级别的docker仓库的服务。

支持中文。

harbor的特性:

1、基于角色进行控制,用户和仓库都是基于项目进行的,用户在每个项目中可以拥有不同的权限

2、基于镜像,可以在不同的harbor实例之间进行复制。

3、harbor自带一个数据库,AD/LDAP(类似于数据库当中的表),对已经存在的用户进行认证和管理。

4、镜像的删除和垃圾回收,仓库当中的镜像可以被删除(基于权限控制的),也可以回收镜像占用的空间

5、有图形化界面,用户可以直接通过浏览器来对镜像仓库进行管理。

6、审计管理,所有对镜像仓库的操作,都可以被记录溯源。

7、支持API操作,

API的程序接口,端口:主机和主机之间的通信        API的应用和应用之间的接口。管理员可以基于API调用接口,和更多的其他的程序进行集成。

harbor的组件:

1、proxy:安装完了harbor之后,他会自动生成一个nginx的容器,自动对外映射,80端口,nginx前端代理,在harbor当中

registry,UI,TOKEN,都在nginx的反向代理后面。通过nginx的代理,可以把请求转发到后端不同的应用。

2、registry:负责存储镜像,docker pull/push的命令都由其负责处理。用户进行访问控制,不同的用户对docker的镜像有不同的读写权限。

Registry每次都会指向一个不同的Token,强制用户每次的pull/push,都必须带一个合法的token(公钥对),Registry会通过公钥对,进行解密验证,合法身份才能进行指定操作。

3、CORE SERVICES:Harbor的核心功能:提供3个服务

    1、UI:提供图形化界面。

    2、Webhook:仓库上所有镜像的变化(增删改),都会传输给webhook,以显示在UI界面上

    3、Token:签发每一次push和pull的公钥对,用来和仓库之间进行权限认证。

4、database:harbor-db,为核心core services提供数据库存储服务,用户权限,审计日志  docker镜像的分组和项目信息。

5、job service:主要用于镜像的复制,本地镜像可以同步到远程harbor上

6、log collector(harbor-log)统一日志收集工具。

harbor都是基于docker容器化部署的,由docker-compose一键编排,安装。

docker1:安装仓库        192.168.233.40        docker-ce  har-bor   docker-compose

docker2:客户端            192.168.233.50        docker-ce  har-bor   docker-compose

docker3:安装仓库---实现远程同步  192.168.233.60        docker-ce  har-bor  docker-compose

准备环境

修改主配置文件

vim harbor.yml

修改IP

harbor_admin_passworf:123456

设置管理员的密码

database的password:数据库的密码默认root123

data_volume:harbor默认保存镜像的路径(默认就是/data)

jobservice:(jobservice主要用于远程同步)
max_job_workers: 10

镜像作业的复制线程为10

./prepare #编译环境

ERROR:root:Error: The protocol is https but attribute ssl_cert is not set

报错原因

https:docker-harbor默认的通信协议是https

https:加密通信协议

解决方法:本地用的是http,需要修改配置文件

将https注释掉之后./install执行一下

docker-compose ps查看一下

浏览器访问

用户名admin

密码使用修改后的123456

本地主机上传镜像

先docker pull拉取镜像

docker images查看拉取的镜像

部署(本地)

docker tag  nginx:1.22.0 127.0.0.1/library/nginx:wx

docker tag 标签

library项目名称

上传公开镜像

发现报错

unauthorized: unauthorized to access repository: library/nginx, action: push: unauthorized to access repository: library/nginx, action: push

原因:要先登录,再上传

回到页面刷新一下,进入项目里面就可以看到nginx,再点击进去就可以看见镜像

创建私有仓库

访问级别不点公开就是私有的

配额限制-1表示不设上限

创建完成角色是项目管理员

创建其他用户

用刚创建完的用户来往私有仓库里面上传镜像

基于nginx镜像再创建一个标签

仓库名称变为私有仓库的名称

docker tag nginx:1.22.0 127.0.0.1/test/nginx:wwx1

docker images查看一下

docker push拉取镜像报错

unauthorized: unauthorized to access repository: test/nginx, action: push: unauthorized to access repository: test/nginx, action: push

错误原因:没有权限,他在项目当中没有没有添加任何信息,系统不知道他是谁,这个用户对项目没有任何操作权限

解决方法:在成员里面添加这个用户

创建用户用户的角色

角色:

访客:只能看,只有读权限

开发者:可以有读写权限,但是没有删除权限。

维护人员:读写权限,修改其他配置项的权限。

项目管理员:只对该项目拥有所有权限。

添加成功之后就可以上传了

查看一下镜像仓库

注:只有管理员账户才能进行多种操作,其他用户登陆则没办法进行多种操作

前面只是在本地进行操作,远程操作如下

docker login -u wwx -p Wxiang666 http:/20.0.0.181

WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get "https://http/v2/": dial tcp: lookup http on 218.2.135.1:53: read udp 20.0.0.181:57968->218.2.135.1:53: i/o timeout

报错原因:docker-harbor默认使用http端口,https端口不接受

解决方法:修改docker-server的配置文件

vim /usr/lib/systemd/system/docker.service

修改13行insecure-registry

再登陆即可

拉取完成之后,查看一下

修改一下标签,然后上传到仓库上

进入项目里面查看一下

远程主机上传镜像就完成了

需要注意:远程主机要修改/usr/lib/systemd/system/docker.service文件才行

否则会报错,因为默认使用443端口,http默认是80端口所以上传不上去,没有https

要先登录,登录改标签,改完标签之后上传

如何实现仓库之间进行同步

将docker1的镜像传到docker3里面

镜像在/data/registry/docker/registry/v2/repositories/test/logstash里面

把这个镜像如何传给docker3

首先准备环境

修改配置文件

vim harbor.yml

配置环境

安装

./install

注:如果后面改了配置文件,需要重新./install.sh一下

一样,登录一下

接下来在docker3里面把docker1的镜像拉取到docker3上

拉取要有源仓库,要选择目标

创建目标

测试连接

再回到复制管理,新建规则

不选,默认拉取库里面的所有镜像

开始复制

复制成功

查看一下

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MDC硬件笔记

学习资源来自华为 MDC210 80pin低速信号接口 4832pin 低速连接器的可插拔次数≤20 MiniFakra 视频接口 MiniFakra 视频连接器的可插拔次数≤ 25 次。 车载以太接口 1、2是100兆,3、4是1000兆 MTB300转接盒 前后面板接口总览: 1 低速接口1 40个…

Python往事:ElementTree的单引号之谜

最近在针对某款设备的界面xml进行更新过程中,被告知回稿的字串放在了一个excel文件中,而我要上传到服务器的界面用语是用xml文件封装的。再经过详细求证了翻译组提供excel文件的原因后,我决定用python来完成界面用语xml的更新,但是…

idea中定时+多数据源配置

因项目要求,需要定时从达梦数据库中取数据,并插入或更新到ORACLE数据库中 1.pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-…

数据标注公司如何确保数据安全?景联文科技多维度提供保障

数据标注公司通常拥有大量的AI数据和用户数据&#xff0c;保护数据安全是数据标注公司的重要任务。 数据标注公司确保标注数据的安全可以从制度、人员、工具等多个方面入手&#xff0c;建立完善的安全管理体系和审计机制&#xff0c;加强应急预案和备份机制的建立&#xff0c;以…

雷电4.0.50模拟器Android7.1.2安装xposed框架

官方论坛&#xff1a;https://xdaforums.com/t/official-xposed-for-lollipop-marshmallow-nougat-oreo-v90-beta3-2018-01-29.3034811/ Xposed 有分支 [EdXposed 和 LSPosed] 。 Edxposed框架现在支持android 8.0 - android 9.0 &#xff0c;如果是android 7.0或更早的版本&…

python selenium chrome114版本之后环境配置和携带缓存打开chrome

尽力局 chrome驱动环境配置chrome打开带缓存设置待缓存打开自动关闭浏览器自动关闭浏览器弹窗 最终代码找资料难啊最终效果代码 依赖包和生成依赖包方法关闭谷歌升级 chrome驱动环境配置 网上找到的资料&#xff0c;我现在安装的是120版本的&#xff0c;这个资料是可行的。比较…

计算机网络:数据链路层(广域网、PPP协议、HDLC协议)

今天又学会了一个知识&#xff0c;加油&#xff01; 目录 一、广域网 二、PPP协议 1、PPP协议应满足的要求 2、PPP协议无需满足的要求 3、PPP协议的三个组成部分 4、PPP协议的状态图 5、PPP协议的帧格式 三、HDLC协议 1、HDLC的站&#xff08;主站、从站、复合站&…

AI聊天伴侣的语料采集大揭秘:OpenCV如何轻松识别聊天图片?

最近&#xff0c;负责元宇宙中AI聊天伴侣的语料数据采集&#xff0c;这些数据主要用于AI虚拟角色聊天的训练和测试。虽然语料获取有多种渠道&#xff0c;但由于部分数据涉及隐私&#xff0c;这里就不多说了&#xff08;感兴趣的朋友可以私聊我&#xff09;。今天&#xff0c;我…

基于Springboot的任务发布平台设计与实现(源码齐全+调试)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。你想解决的问题&#xff0c;今天给大家介绍…

深度学习笔记_6经典预训练网络LeNet-18解决FashionMNIST数据集

1、 调用模型库&#xff0c;定义参数&#xff0c;做数据预处理 import numpy as np import torch from torchvision.datasets import FashionMNIST import torchvision.transforms as transforms from torch.utils.data import DataLoader import torch.nn.functional as F im…

Vue学习笔记-Vue3中的customRef

作用 创建一个自定义的ref&#xff0c;并对其依赖项的更新和触发进行显式控制 案例 描述&#xff1a;向输入框中输入内容&#xff0c;在下方延迟1秒展示输入内容 代码&#xff1a; <template><input type"text" v-model"keyword"><h3&…

关于“Python”的核心知识点整理大全24

目录 ​编辑 10.1.6 包含一百万位的大型文件 pi_string.py 10.1.7 圆周率值中包含你的生日吗 10.2 写入文件 10.2.1 写入空文件 write_message.py programming.txt 10.2.2 写入多行 10.2.3 附加到文件 write_message.py programming.txt 10.3 异常 10.3.1 处理 Ze…

数据科学知识库

​ 我的博客是一个技术分享平台&#xff0c;涵盖了机器学习、数据可视化、大数据分析、数学统计学、推荐算法、Linux命令及环境搭建&#xff0c;以及Kafka、Flask、FastAPI、Docker等组件的使用教程。 在这个信息时代&#xff0c;数据已经成为了一种新的资源&#xff0c;而机…

环境搭建及源码运行_java环境搭建_mysql安装

书到用时方恨少、觉知此时要躬行&#xff1b;拥有技术&#xff0c;成就未来&#xff0c;抖音视频教学地址&#xff1a;​​​​​​​​​​​​​​ 1、介绍 MySQL是一个关系型数据库管理系统&#xff0c;由瑞典MySQL AB 公司开发&#xff0c;属于 Oracle旗下产品。MySQL是最…

go原生http开发简易blog(一)项目简介与搭建

文章目录 一、项目简介二、项目搭建前置知识三、首页- - -前端文件与后端结构体定义四、配置文件加载五、构造假数据- - -显示首页内容 代码地址&#xff1a;https://gitee.com/lymgoforIT/goblog 一、项目简介 使用Go原生http开发一个简易的博客系统&#xff0c;包含一下功能…

UE5:Lumen 框架

1.Lumen渲染流程框架 2.Lumen基本概念 2.1 LumenCard & LumenMeshCards LumenMeshCards&#xff1a;一组带有方向性的模型简化代理&#xff0c;视模型复杂度不同可能包含6个及以上数量的LumenCard&#xff1b;用来提供光照采样的位置和方向。 2.2 LumenCardPage & Lu…

Pycharm 如何更改成中文版| Python循环语句| for 和 else 的搭配使用

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…

【Linux】在vim中批量注释与批量取消注释

在vim编辑器中&#xff0c;批量注释和取消注释的操作可以通过进入V-BLOCK模式、选择要注释或取消注释的内容、输入注释符号或选中已有的注释符号和按键完成。这些操作可以大大提高代码或文本的编写和修改效率&#xff0c;是vim编辑器中常用的操作之一。 1.在vim中批量注释的步…

常用网安渗透工具及命令(扫目录、解密爆破、漏洞信息搜索)

目录 dirsearch&#xff1a; dirmap&#xff1a; 输入目标 文件读取 ciphey&#xff08;很强的一个自动解密工具&#xff09;&#xff1a; john(破解密码)&#xff1a; whatweb指纹识别&#xff1a; searchsploit&#xff1a; 例1&#xff1a; 例2&#xff1a; 例3&…

<JavaEE> 网络编程 -- 网络通信基础(协议和协议分层、数据封装和分用)

目录 一、IP地址 1&#xff09;IP地址的概念 2&#xff09;IP地址的格式 二、端口号 1&#xff09;端口号的概念 2&#xff09;端口号的格式 3&#xff09;什么是知名端口号&#xff1f; 三、协议 1&#xff09;协议的概念 2&#xff09;协议的作用 3&#xff09;TC…