K8S部署Harbor(三部曲之三:使用)

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。

文章目录

  • 使用Harbor
    • 1. 访问
    • 2. 登录
    • 3. 项目创建
      • 3.1 私有项目test01创建
      • 3.2 公开项目test02创建
    • 4. Docker配置Harbor(所有节点)
      • 4.1 insecure-registries
      • 4.2 Docker登录Harbor
    • 5. hello-world镜像拉取
    • 6. 公开项目的镜像推送和拉取
      • 6.1 镜像上传
        • 6.1.1 打标签
        • 6.1.2 镜像推送
      • 6.2 镜像拉取
        • 6.2.1 查看镜像
        • 6.2.2 删除tag的镜像
        • 6.2.3 拉取harbor仓库的镜像
    • 7. 私有项目的镜像推送和拉取(为了验证有无区别还是操作一遍私有的)
      • 7.1 镜像上传
        • 7.1.1 打标签
        • 7.1.2 镜像推送
      • 7.2 镜像拉取
        • 7.2.1 查看镜像
        • 7.2.2 删除tag的镜像
        • 7.2.3 拉取harbor仓库的镜像
    • 8. 可能遇到的问题
    • 9. 镜像仓库相关Docker命令汇总
      • 9.1 登录Harbor
      • 9.2 重启Harbor
        • 9.2.1 直接重启命令
        • 9.2.2 指定文件路径重启命令
      • 9.3 拉取镜像
      • 9.4 查看镜像
      • 9.5 为镜像打标签
      • 9.6 推送镜像到Harbor
      • 9.7 删除镜像
      • 9.7 从Harbor中拉取镜像到本地
    • 10. 卸载Harbor
      • 10.1 停止Harbor服务相关容器
      • 10.2 删除Harbor服务相关容器
      • 10.3 删除harbor服务相关镜像
      • 10.4 删除harbor相关数据


K8S部署Harbor三部曲:
K8S部署Harbor(三部曲之一:配置)
K8S部署Harbor(三部曲之二:部署)
K8S部署Harbor(三部曲之三:使用)本篇

使用Harbor

1. 访问

前面配置安装完成后,可通过https://172.30.0.224:8443访问我们的Harbor镜像仓库
会出现以下界面,选高级
在这里插入图片描述
继续前往
在这里插入图片描述

2. 登录

看到Harbor登录界面
在这里插入图片描述
输入账号密码即可登录
默认账号为admin
默认密码为Harbor12345

登录成功后可看到有一个默认的项目library,接下来就可以正常使用Harbor了
在这里插入图片描述

3. 项目创建

在项目一栏中选择新建新建项目,用于存储镜像,我们创建两个项目,一个私有一个公开
在这里插入图片描述
注:
由于我配置的是https访问harbor仓库,就是安全配置访问,不管是公开的还是私有的都需要在docker中配置信任harbor后登陆harbor才可以操作镜像仓库中的镜像
如果你想别人也能随便用你的镜像仓库(这种情况应该不多,大多数人还是自己管控自己的镜像),可以配置http方式,不用https的安全配置,这样公开的项目应该能被别人拉取使用,总之这部分的区别有待大家去探索,我也是小小尝试了一下。

3.1 私有项目test01创建

填写项目名称其余默认,公开不点就是私有,确定
在这里插入图片描述
创建成功
在这里插入图片描述

3.2 公开项目test02创建

在这里插入图片描述
创建成功
在这里插入图片描述
点进去打开test01和test02,里面都是空的,接下来我们推送镜像到这两个项目中
在这里插入图片描述
在这里插入图片描述

现在我们可以到服务器中使用docker将镜像推送到我们新建的test01和test02项目中

4. Docker配置Harbor(所有节点)

为了能在集群中任何一个节点服务器上使用docker推送或拉取Harbor上的镜像,我们需要给所有节点的docker配置信任Harbor并登录

4.1 insecure-registries

让docker信任harbor镜像仓库
在daemon.json文件中添加insecure-registries参数,注意拼写,不要错了,不然在不自知的情况下可能会查很久

vim /etc/docker/daemon.json

i进入编辑

{"exec-opts": ["native.cgroupdriver=systemd"],"insecure-registries": ["https://172.30.0.224:8443"]
}

编辑完后Esc退出编辑模式
shift+zz快捷保存退出

最后不要忘了重启docker让配置生效

systemctl daemon-reload
systemctl restart docker 

4.2 Docker登录Harbor

在docker中登录Harbor以便可正常推送拉取镜像

docker login 172.30.0.224:8443 -u admin -p Harbor12345

在这里插入图片描述
或者交互式登录

docker login 172.30.0.224:8443

然后输入账号和密码,不过密码看不到,建议还是用第一种命令登录

在这里插入图片描述

5. hello-world镜像拉取

我们要推送镜像就要先有一个镜像,我们去docker中拉取hello-world镜像来演示接下来的推送拉取操作
首先在harbor所在的服务器中使用docker命令拉取hello-world镜像

docker pull hello-world

不加版本号默认拉取最新版本latest
在这里插入图片描述
查看镜像

docker images

6. 公开项目的镜像推送和拉取

公开项目的镜像推送和拉取
根据上一小节拉取hello-world镜像到从节点k8s-worker1服务器

6.1 镜像上传

6.1.1 打标签

将hello-world镜像打标签,即以什么名称什么版本放到什么位置
如下就是将hello-world:latest镜像存放到test02项目中,名称为hello-world-hs-pu版本为20240130

docker tag hello-world:latest 172.30.0.224:8443/test02/hello-world-hs-pu:20240130

在这里插入图片描述
打完标签后可docker images查看打标签的镜像

6.1.2 镜像推送

将打过标签的镜像上传到我们Harbor镜像仓库创建的test02项目中

docker push 172.30.0.224:8443/test02/hello-world-hs-pu:20240130

推送成功
在这里插入图片描述
然后去镜像仓库test02项目中查看镜像,可以看到已经在了
在这里插入图片描述

6.2 镜像拉取

和镜像推送相似,从harbor仓库的test02项目中将镜像拉取到当前服务器中

6.2.1 查看镜像

查看含有hello名称的镜像

docker images | grep hello

在这里插入图片描述

6.2.2 删除tag的镜像

首先我们先把刚才tag过的镜像删除

docker rmi -f 172.30.0.224:8443/test02/hello-world-hs-pu:20240130

在这里插入图片描述

6.2.3 拉取harbor仓库的镜像

现在拉取harbor仓库test02中的hello-world-hs-pu:20240130镜像

docker pull 172.30.0.224:8443/test02/hello-world-hs-pu:20240130

一秒不到完成,相当丝滑,终于体验到使用自己镜像仓库的酸爽了
在这里插入图片描述
然后使用命令查看镜像就可以看到镜像已经存在

7. 私有项目的镜像推送和拉取(为了验证有无区别还是操作一遍私有的)

私有项目的镜像推送和拉取

7.1 镜像上传

7.1.1 打标签

将hello-world镜像打标签,即以什么名称什么版本放到什么位置
如下就是将hello-world:latest镜像存放到test01项目中,名称为hello-world-hs-pr版本为20240131

docker tag hello-world:latest 172.30.0.224:8443/test01/hello-world-hs-pr:20240131

在这里插入图片描述
打完标签后可docker images查看打标签的镜像

7.1.2 镜像推送

将打过标签的镜像上传到我们Harbor镜像仓库创建的test01项目中

docker push 172.30.0.224:8443/test01/hello-world-hs-pr:20240131

推送成功
在这里插入图片描述
然后去镜像仓库test01项目中查看镜像,可以看到已经在了
在这里插入图片描述

7.2 镜像拉取

和镜像推送相似,从harbor仓库的test01项目中将镜像拉取到当前服务器中

7.2.1 查看镜像

查看含有hello名称的镜像

docker images | grep hello

在这里插入图片描述

7.2.2 删除tag的镜像

首先我们先把刚才tag过的镜像删除

docker rmi -f 172.30.0.224:8443/test01/hello-world-hs-pr:20240131

在这里插入图片描述

7.2.3 拉取harbor仓库的镜像

现在拉取harbor仓库test01中的hello-world-hs-pr:20240131镜像

docker pull 172.30.0.224:8443/test01/hello-world-hs-pr:20240131

很快,已经pull下来了
在这里插入图片描述
然后使用命令查看镜像就可以看到镜像已经存在

小节:
可以看到,在使用https配置的harbor镜像仓库时,对私有和公开项目中镜像的推送和拉取是没什么区别的,不过对于大多数项目内部使用的镜像仓库来说,https配置的harbor可能会更好吧。

8. 可能遇到的问题

可能报错的内容如下,可直接点击链接查看解决:
报错1:Get “https://198.30.0.111:8443/v2/”: tls: failed to verify certificate: x509: certificate relies on legacy Common Name field, use SANs instead
报错2:invalid reference format
报错3:unauthorized: unauthorized to access repository: test02/hello-world-hs-pu, action: push: unauthorized to access repository: test02/hello-world-hs-pu, action: push

9. 镜像仓库相关Docker命令汇总

9.1 登录Harbor

换成你自己的ip端口及账号密码

docker login 172.30.0.224:8443 -u admin -p Harbor12345

9.2 重启Harbor

当harbor服务有问题或者修改了配置需要重启harbor时

9.2.1 直接重启命令

该命令需要再docker-compose.yml文件所在目录下执行

docker-compose restart
9.2.2 指定文件路径重启命令

在任意路径下可用-f指定docker-compose.yml文件路径来执行重启

docker-compose -f /opt/harbor/docker-compose.yml restart

注:一定要根据自己的docker-compose.yml文件路径来执行

9.3 拉取镜像

拉取hello-world镜像,不加版本号默认拉取最新

docker pull hello-world

9.4 查看镜像

可查看全部

docker images

查看镜像名称中含有指定字段的镜像

docker images | grep 字段

如查看含有h字母的镜像

docker images | grep h

9.5 为镜像打标签

将hello-world:latest镜像打标签为172.30.0.224:8443/test01/hello-world:v240131

docker tag hello-world:latest 172.30.0.224:8443/test01/hello-world-test:v240131

执行后会在docker中多出一个REPOSITORY名称为172.30.0.224:8443/test01/hello-world-test,TAG为v240131的镜像

9.6 推送镜像到Harbor

将打过标签的镜像推送到harbor镜像仓库,下方命令表示将镜像hello-world-test:v240131推送到仓库的test01项目中

docker push 172.30.0.224:8443/test01/hello-world-test:v240131

9.7 删除镜像

docker rmi 172.30.0.224:8443/test01/hello-world-test:v240131

也可加-f参数强制删除

9.7 从Harbor中拉取镜像到本地

将我们harbor中的镜像拉取到本地

docker pull 172.30.0.224:8443/test01/hello-world-test:v240131

10. 卸载Harbor

10.1 停止Harbor服务相关容器

可用docker ps | grep goharbor查看正在运行的harbor服务相关的容器

docker stop 容器名

10.2 删除Harbor服务相关容器

docker ps -a | grep "goharbor" | awk '{print "docker rm "$1}'

10.3 删除harbor服务相关镜像

docker images | grep "goharbor" | awk '{print "docker rmi "$1":"$2}'

10.4 删除harbor相关数据

如果不删除相关数据,再次安装harbor可能会报错,默认数据位置/data,如果根据本篇修改过则为/data/harbor

rm -f /data/harbor

到这应该卸载完成可重新安装harbor了


感谢阅读,祝君暴富!

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

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

相关文章

Cmake编译Opencv3.3.1遇到有些文件无法下载的错误解决:

前言: 对于,opencv有些配置文件错误并未致命,所以,有错误也不影响后续的编译:但是,后引用如果要用,在回过头来还是要解决的。 问题表述: 比如,有些文件下载的错误&am…

[官方精简母盘WIM]_Windows10_22H2_19045.3930

[官方精简母盘WIM]_Windows10_22H2_19045.3930 【原汁原味】不过多阐述了哈,谁用谁知道😉 zh-cn_windows_10_business_editions_version_22h2_updated_jan_2024_x64_dvd_fef73a09 链接:https://pan.baidu.com/s/19Qj6cBHzaU8Rkn8WZ7-o2w?pw…

three.js 精灵模型Sprite作为标签

效果&#xff1a; <template><div><el-container><el-main><div class"box-card-left"><divid"threejs"style"border: 1px solid red; position: relative"></div></div></el-main></…

C++ 动态规划 线性DP 最长共同子序列

给定两个长度分别为 N 和 M 的字符串 A 和 B &#xff0c;求既是 A 的子序列又是 B 的子序列的字符串长度最长是多少。 输入格式 第一行包含两个整数 N 和 M 。 第二行包含一个长度为 N 的字符串&#xff0c;表示字符串 A 。 第三行包含一个长度为 M 的字符串&#xff0c;表…

excel给数据库初始化/旧数据处理(自动sql拼装)

思路&#xff1a; 首先导出数据到excel编写单条数据操作的sql利用excel CONCATENATE 函数自动生成&#xff0c;每一行数据的操作sql 小技巧:对于需要套娃的字段值&#xff0c;可以加一个临时列同样使用CONCATENATE函数进行sql拼装 案例&#xff1a; 1.临时列:CONCATENATE(C2, …

MyBatis笔记梳理

文章目录 什么是 MyBatis&#xff1f;前期准备依赖配置文件mapper利用注解 增、删、改、查查增改删#{} 和 ${} 的区别类型别名 动态sqlwhere ifforeachsql引用不常用标签 多表查询多对一&#xff08;一对一&#xff09;一对多多对多多表查询 个人理解 延迟加载概念使用场景延迟…

下载、安装Jenkins

进入官网 下载Jenkins https://www.jenkins.io 直接点击Download 一般是下长期支持版 因为它是java写的&#xff0c;你要运行它&#xff08;Jenkins.war&#xff09;肯定要有java环境 有两种方式去运行它&#xff0c;一种是下载Tomcat&#xff08;是很经典的java容器或者jav…

顺序表:数据结构的建筑积木

朋友们大家好啊&#xff0c;本节内容我们进入数据结构的第二节&#xff0c;顺序表有关内容&#xff0c;同步我们会学习计组原理与cpp相关知识&#xff0c;求三连啊&#xff01; 本节我们重点探讨动态顺序表关于插入数据和删除数据的多种情况的分析 顺序表 线性表顺序表静态顺序…

2024-01-07-AI 大模型全栈工程师 - 做自己的产品经理

摘要 2024-01-07 周日 杭州 阴 本节内容: a. 如何做好独立开发设计&#xff0c;实现财富自由&#xff1b; 课程内容 1. 独立开发者 英文 indie hacker&#xff0c;是指独立开发软件产品的人&#xff1b;一人承担一个项目产品的所有工作&#xff1b; 2. 创业机会 云计算设…

在 Windows 和 Mac 上恢复已删除文件的 8 种方法

如果您最近才删除该文件&#xff0c;通常可以从回收站 (PC) 或垃圾箱 (Mac) 快速恢复它。只要您备份计算机&#xff0c;您就应该能够从最近的备份之一恢复已删除的文件。如果您没有其他选择&#xff0c;您可以使用 Recuva (Windows) 或 Disk Drill (Mac) 等文件恢复软件来增加恢…

【Linux系统化学习】进程替换

目录 进程程序替换 替换原理 ​编辑替换函数 函数解释 命名理解 函数使用 execl execlp execv execvp 调用其它程序 进程程序替换 替换原理 用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数以执行另一个…

《计算机网络简易速速上手小册》第9章:物联网(IoT)与网络技术(2024 最新版)

文章目录 9.1 IoT 架构与通信协议 - 打造智能世界的秘诀9.1.1 基础知识9.1.2 重点案例&#xff1a;使用 Python 和 MQTT 实现智能家居照明系统准备工作Python 脚本示例发布者&#xff08;灯光控制&#xff09;订阅者&#xff08;灯光状态接收&#xff09;&#xff1a; 9.1.3 拓…