Docker-harbor私有仓库部署与管理

目录

    • 实验前准备
    • 部署Docker-compose服务
    • 部署Harbor服务
      • 修改配置文件
      • 创建项目
    • 客户端测试
      • 修改客户端配置
      • 测试
    • 维护管理Harbor
      • 创建项目
      • 创建用户
      • 查看日志
      • 修改Harbor.cfg配置文件
      • 补充

实验前准备

Harbor服务器:192.168.188.11 docker-ce、docker-compose、harbor-offline-v1.2.2
Client:192.168.188.17 docker-ce
关闭防火墙
systemctl stop firewalld
setenforce 0

部署Docker-compose服务

下载或上传Docker-compose
下载:curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-uname -s-uname -m -o /usr/local/bin/docker-compose
上传放在/usr/local/bin/目录下
cp /opt/docker-compose /usr/local/bin/
chmod +x /usr/local/bin/docker-compose
能看到版本没问题
在这里插入图片描述

部署Harbor服务

下载或上传harbor安装程序
下载:wget http://harbor.orientsoft.cn/harbor-1.2.2/harbor-offline-installer-v1.2.2.tgz
tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/

修改配置文件

vim /usr/local/harbor/harbor.cfg
修改hostname为自己harbor服务器的IP地址(域名也行)
在这里插入图片描述
指定管理员的初始密码,默认用户名/密码是admin/Harbor12345,这里可以自定义
在这里插入图片描述
启动harbor
cd /usr/local/harbor/
为harbor启动的容器生成一些必要的文件(环境)
./prepare
pull镜像并启动容器
./install.sh
查看harbor启动镜像
cd /usr/local/harbor/
docker-compose ps
在这里插入图片描述

创建项目

浏览器访问http://192.168.188.11登录Harbor WEB UI界面,默认的管理员用户名和密码是 admin/Harbor12345
创建新项目
在这里插入图片描述
在这里插入图片描述
此时可使用Docker命令在本地通过127.0.0.1来登录和推送镜像。默认情况下Registry服务器在端口80上
登录Harbor
docker login -u admin -p Harbor12345 http://127.0.0.1
下载镜像进行测试
docker pull nginx
给镜像打标签
docker tag nginx:latest 127.0.0.1/myproject-tsh/nginx:v1
测试能不能通过新标签上传镜像
docker push 127.0.0.1/myproject-tsh/nginx:v1
在这里插入图片描述
此时在浏览器的Harbor界面的myproject-tsh目录下就可以看见这个镜像了
在这里插入图片描述

客户端测试

上面的操作都是在Harbor服务器本地完成,现在模拟客户端登录Harbor
在Client上登录
docker login -u admin -p Harbor12345 http://192.168.188.11
在这里插入图片描述
此时报错,原因Docker Registry交互默认使用的是HTTPS,但是搭建私有镜像默认使用的是HTTP服务,所以与私有镜像交互时出现错误
解决办法是:在Docker server启动的时候,增加启动参数,默认使用HTTP访问

修改客户端配置

vim /usr/lib/systemd/system/docker.service
在这里插入图片描述
重启Docker
systemctl daemon-reload
systemctl restart docker
再次登录
docker login -u admin -p Harbor12345 http://192.168.10.23
在这里插入图片描述

测试

下载镜像
docker pull 192.168.188.11/myproject-tsh/nginx:v1
在这里插入图片描述
上传镜像
从library仓库下载cirros镜像
docker pull cirros
为cirros镜像打上新的标签
docker tag cirros:latest 192.168.10.23/myproject-kgc/cirros:v2
上传新镜像
docker push 192.168.10.23/myproject-kgc/cirros:v2
在这里插入图片描述
浏览器查看
在这里插入图片描述

维护管理Harbor

创建项目

在这里插入图片描述
项目如果设置为私有,则必须执行Docker login才能下载镜像

创建用户

创建用户并分配权限
在这里插入图片描述
添加项目成员
在这里插入图片描述
客户端上使用普通账户操作镜像
先把本地镜像里的cirror:v2删了方便后续测试
docker rmi 192.168.188.11/myproject-tsh/cirros:v2
如果已经登录了就先退出
docker logout 192.168.188.11
然后使用刚刚创建的账户登录
docker login -u tsh -p DzD123456 http://192.168.188.11
在这里插入图片描述
测试下载和上传
docker pull 192.168.188.11/myproject-tsh/cirror:v2
docker tag cirros:latest 192.168.188.11/myproject-tsh/cirrors:v3
docker push 192.168.188.11/myproject-tsh/cirrors:v3

查看日志

在这里插入图片描述

修改Harbor.cfg配置文件

要更改Harbor配置文件中的可选参数时,需要先停止现有的Harbor实例并更新Harbor.cfg;然后运行prepare脚本来填充配置;最后重新创建并启动Harbor的实例
在Harbor服务器上操作
cd /usr/local/harbor
docker-compose down -v
只能修改可选参数
vim harbor.cfg
修改完后再启动
./prepare
docker-compose up -d

补充

移除 Harbor 服务容器同时保留镜像数据/数据库,并进行迁移
cd /usr/local/harbor
docker-compose down -v
打包数据
ls /data/registry/docker/registry/v2/repositories/myproject-kgc
cd /data/registry/docker/registry/v2/repositories/myproject-kgc
tar zcvf kgc-registry.tar.gz ./*
如需重新部署,需要移除 Harbor 服务容器全部数据

所需参数与可选参数
所需参数:这些参数需要在配置文件Harbor.cfg中设置。如果用户更新它们并运行install.sh脚本重新安装Harbor,参数将生效,具体参数如下:
●hostname:用于访问用户界面和register服务。它应该是目标机器的IP地址或完全限定的域名,例如192.168.188.11或cloud.tsh.cn。不要使用localhost或127.0.0.1为主机名
●ui_url_protocol:(http或https,默认为http)用于访问UI和令牌/通知服务的协议。如果公证处于启用状态,则此参数必须为https。
●max_job_workers:镜像复制作业线程。
●db_password:用于db_auth的MySQL数据库root用户的密码。
●customize_crt:该属性可设置为打开或关闭,默认打开。打开此属性时,准备脚本创建私钥和根证书,用于生成/验证注册表令牌。当由外部来源提供密钥和根证书时,将此属性设置为 off。
●ssl_cert:SSL证书的路径,仅当协议设置为 https 时才应用。
●secretkey_path:用于在复制策略中加密或解密远程register密码的密钥路径
可选参数:这些参数对于更新是可选的,即用户可以将其保留为默认值,并在启动Harbor后再在Web UI上进行更新。如果进入Harbor.cfg,只会在第一次启动Harbor时生效,随后对这些参数的更新,Harbor.cfg将被忽略,如果选择启动harbor后再在Web上更改,请在第一时间修改,具体参数如下:
●Email:Harbor需要该参数才能向用户发送“密码重置”电子邮件,并且只有在需要该功能时才启用。请注意,在默认情况下SSL连接时没有启用。如果SMTP服务器需要SSL,但不支持STARTTLS,那么应该通过设置启用SSL email_ssl = TRUE。
●harbor_admin_password:管理员的初始密码,只在Harbor第一次启动时生效。之后, 此设置将被忽略,并且应在UI中设置管理员的密码。请注意,默认的用户名/密码是admin/Harbor12345。
●auth_mode:使用的认证类型,默认情况下,它是db_auth,即凭据存储在数据库中。对于LDAP身份验证,请将其设置为ldap_auth。
●self_registration:启用/禁用用户注册功能。禁用时,新用户只能由Admin用户创建,只有管理员用户可以在Harbor中创建新用户。注意:当auth_mode设置为ldap_auth时,自注册功能将始终处于禁用状态,并且该标志被忽略。
●Token_expiration:由令牌服务创建的令牌的到期时间(分钟),默认为30分钟。
●project_creation_restriction:用于控制哪些用户有权创建项目的标志。默认情况下,每个人都可以创建一个项目。如果将其值设置为“adminonly”,那么只有admin可以创建项目。
●verify_remote_cert:打开或关闭,默认打开。此标志决定了当Harbor与远程register实例通信时是否验证SSL/TLS证书。 将此属性设置为off将绕过SSL/TLS验证,这在远程实例具有自签名或不可信证书时经常使用。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【计算机网络】OSI七层模型与TCP/IP四层模型的对应与各层介绍

1 OSI七层模型与TCP/IP四层模型对应 2 OSI七层模型介绍 OSI(Open Systems Interconnection)模型是一个由国际标准化组织(ISO)定义的七层网络体系结构,用于描述计算机网络中的通信协议。每一层都有特定的功能&#xff…

C#,入门教程(38)——大型工程软件中类(class)修饰词partial的使用方法

上一篇: C#,入门教程(37)——优秀程序员的修炼之道https://blog.csdn.net/beijinghorn/article/details/125011644 一、大型(工程应用)软件倚重 partial 先说说大型(工程应用)软件对源代码的文件及函数“…

2023 China DevOpsDays(DOD) DXCon 国际数字化转型与创新管理企业峰会:核心内容与学习收获(附大会核心PPT下载)

随着科技的飞速发展,数字化转型已成为企业持续发展的必经之路。2023年的China DevOpsDays & DXCon国际数字化转型与创新管理企业峰会,汇集了业界顶尖的专家、学者和企业领袖,共同探讨数字化转型的最新趋势和实践。本文将深入剖析大会的核…

多功能隐写融合

最近尝试了一个融合了多功能隐写的项目,参考了一些现有的资料和相关的开源库,并最终集成到了可视化UI当中。这篇文章讲述了实现的几项隐写技术的原理以及最终呈现的效果,后续会在“隐私保护”以及“ui”的专栏中继续更新详细的ui设计思路以及…

Asp .Net Core 系列:集成 Ocelot+Nacos+Swagger+Cors实现网关、服务注册、服务发现

文章目录 简介什么是 Ocelot ?什么是 Nacos ?什么是 Swagger ?什么是 Cors ? Asp .Net Core 集成 Ocelot网关集成 Nacos下游配置 Nacos配置跨域(Cors)网关和微服务中配置Swagger效果 简介 什么是 Ocelot ? Ocelot是一个开源的ASP.NET Core微服务网…

某C2鸡肋漏洞分析:你的CS安全吗?

CobaltStrike是一个知名的红队命令与控制框架&#xff0c;采用Beacon <-> TeamServer <-> Client架构。TeamServer存在受限路径穿越写文件与反序列化漏洞&#xff0c;可以被认证后客户端恶意利用。Client存在反序列化漏洞&#xff0c;可以被RogueCS攻击。 山寨威胁…

PyTorch各种损失函数解析:深度学习模型优化的关键(2)

目录 详解pytorch中各种Loss functions mse_loss 用途 用法 使用技巧 注意事项 参数 数学理论公式 代码演示 margin_ranking_loss 用途 用法 使用技巧 注意事项 参数 数学理论公式 代码演示 multilabel_margin_loss 用途 用法 使用技巧 注意事项 参数 …

【BERT】详解

BERT 简介 BERT 是谷歌在 2018 年时提出的一种基于 Transformer 的双向编码器的表示学习模型&#xff0c;它在多个 NLP 任务上刷新了记录。它利用了大量的无标注文本进行预训练&#xff0c;预训练任务有掩码语言模型和下一句预测&#xff0c;掩码语言模型指的是随机地替换文本中…

红外遥控,按键事件

问&#xff1a;android tv的遥控功能是如何实现的 答&#xff1a; Android TV 的遥控功能是通过红外遥控器或蓝牙遥控器来实现的。下面分别介绍这两种遥控器的工作原理&#xff1a; 红外遥控器&#xff1a; 红外遥控器是最常见的 Android TV 遥控器类型之一。 红外遥控器通…

Electron中苹果支付 Apple Pay inAppPurchase 内购支付

正在开发中&#xff0c;开发好了&#xff0c;写一个完整详细的过程&#xff0c;保证无脑集成即可 一、先创建一个App 一般情况下&#xff0c;在你看这篇文章的时候&#xff0c;说明你已经开发的app差不多了。 但是要上架app到Mac App Store&#xff0c;则要在appstoreconnect…

ROS第 9 课 编写简单的服务端 Server

文章目录 第 9 课 编写简单的服务端 Server1.创建服务器代码2.运行服务器节点 第 9 课 编写简单的服务端 Server 1.创建服务器代码 注意&#xff1a;在创建服务器代码之前&#xff0c;需要先创建工作空间和功能包&#xff0c;具体操作过程可前往目录“第4课 创建工作空间与功能…

14 STM32 - IIC (时序图+软件源码)

14.1 IIC简介 IIC&#xff08;Inter-Integrated Circuit&#xff09;&#xff0c;中文集成电路总线&#xff0c;是一种串行通信总线&#xff0c;使用多主从架构。I2C串行总线一般有两根信号线&#xff0c;一根是双向的数据线SDA&#xff0c;另一根是时钟线SCL。所有接到I2C总线…

VUE--组件的生命周期及其基本应用

VUE的生命周期 上图是实例生命周期的图表&#xff0c;需要注意以下几个重要时期&#xff1a; 创建期&#xff1a;beforeCreated、created 挂载期&#xff1a;beforeMount、mounted 更新期&#xff1a;beforeUpdate、updated 销毁期&#xff1a;beforeUnmount、unmounted 生命周…

云原生演进中的AI算力高效使用

0 1 云原生技术的普及与发展 云原生技术是一种基于容器技术的轻量级、高可用的应用架构&#xff0c;具有弹性扩展、快速部署、统一管理等特点。随着企业对敏捷开发和快速迭代的需求不断增加&#xff0c;云原生技术的普及与发展已成为不可逆转的趋势。 图1. 云原生技术发展之路…

软件测试阶段简介_单元测试、集成测试、配置项测试、系统测试

文章目录 前言一、软件测试“V”模型二、单元测试三、集成测试四、配置项测试五、系统测试总结 前言 一般来说&#xff0c;按照软件的研制阶段划分&#xff0c;软件测试可分为单元测试、集成测试、配置项测试、系统测试等。本文将对上述各测试阶段进行逐一介绍。 一、软件测试…

元宇宙:智慧城市建设的未来引擎与价值之源

在21世纪的技术大潮中&#xff0c;元宇宙的出现无疑是一场革命&#xff0c;其独特的概念与价值已经引发了全球范围内的关注。 作为新兴科技的前沿&#xff0c;元宇宙为智慧城市建设带来了无限的可能性和价值&#xff0c;有望成为未来城市发展的核心动力。 元宇宙&#xff0c;这…

【RPC】动态代理:面向接口编程,屏蔽RPC处理流程

一、背景 如果我问你&#xff0c;你知道动态代理吗&#xff1f; 你可能会如数家珍般地告诉我动态代理的作用以及好处。那我现在接着问你&#xff0c;你在项目中用过动态代理吗&#xff1f;这时候可能有些人就会犹豫了。那我再换一个方式问你&#xff0c;你在项目中有实现过统一…

【RT-DETR有效改进】轻量级网络ShuffleNetV2(附代码+修改教程)

前言 大家好&#xff0c;这里是RT-DETR有效涨点专栏。 本专栏的内容为根据ultralytics版本的RT-DETR进行改进&#xff0c;内容持续更新&#xff0c;每周更新文章数量3-10篇。 专栏以ResNet18、ResNet50为基础修改版本&#xff0c;同时修改内容也支持ResNet32、ResNet101和PP…

最新ChatGPT/GPT4科研应用与AI绘图及论文高效写作

详情点击链接&#xff1a;最新ChatGPT/GPT4科研应用与AI绘图及论文高效写作 一OpenAI 1.最新大模型GPT-4 Turbo 2.最新发布的高级数据分析&#xff0c;AI画图&#xff0c;图像识别&#xff0c;文档API 3.GPT Store 4.从0到1创建自己的GPT应用 5. 模型Gemini以及大模型Clau…

详细介绍IP 地址、网络号和主机号、ABC三类、ip地址可分配问题、子网掩码、子网划分

1、 IP 地址: 网络之间互连的协议&#xff0c;是由4个字节(32位二进制)组成的逻辑上的地址。 将32位二进制进行分组&#xff0c;分成4组&#xff0c;每组8位(1个字节)。【ip地址通常使用十进制表示】ip地址分成四组之后&#xff0c;在逻辑上&#xff0c;分成网络号和主机号 2…