harbor仓库的搭建

news/2024/11/13 3:34:22/

harbor仓库的搭建

  • 前言
  • 一、准备
  • 二、registry私有仓库
      • 拉取registry镜像
      • 上传镜像
      • 下载镜像
      • 添加私有仓库解析
      • 配置使用非加密端口
      • 拉取镜像
  • 三、仓库加密
      • 域名保持一致
      • 部署客户端证书,不然会报错
      • 验证
      • 仓库认证
      • 删除registry,重建
      • 登录仓库,不然无法上传下载
      • 验证
  • 四、harbor企业级私有仓库
      • 拷贝证书
      • 部署docker-compose
      • 部署harbor
      • 上传镜像,首先需要执行docker login
      • 客户端配置默认私有仓库
      • 匿名拉取镜像
      • 创建私有仓库


前言

Harbor是一个开源的容器镜像仓库,它提供了一个安全、可靠的平台来存储和分发Docker镜像。与Docker Hub不同的是,Harbor允许用户将私有镜像存储在本地环境中,并且能够对镜像进行访问控制和审计等管理操作,可以帮助组织更好地管理和保护他们的镜像资源,也更适合在企业内部使用。
Harbor支持各种云平台和容器管理平台,如Docker、Kubernetes、Mesos等,同时还支持LDAP、AD等多种认证方式。它还具备高可用性、数据备份、镜像复制等特性,可以满足复杂的部署需求。


一、准备

官方仓库:https://hub.docker.com配置镜像加速器
[root@k8s1 ~]# vim /etc/docker/daemon.json
{"registry-mirrors": ["https://registry.docker-cn.com"]
}[root@k8s1 ~]# systemctl restart docker[root@k8s1 ~]# docker info

二、registry私有仓库

拉取registry镜像

[root@k8s1 ~]# docker pull registry
运行registry仓库
[root@k8s1 docker]# docker run -d -p 5000:5000 --restart=always --name registry registry

上传镜像

[root@k8s1 ~]# docker tag nginx:latest localhost:5000/nginx:latest
[root@k8s1 ~]# docker push localhost:5000/nginx[root@k8s1 ~]# curl  localhost:5000/v2/_catalog
{"repositories":["nginx"]}

下载镜像

[root@k8s1 ~]# docker pull localhost:5000/nginxinsecure registry

添加私有仓库解析

[root@k8s2 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.56.171  k8s1 reg.westos.org
192.168.56.172  k8s2

配置使用非加密端口

[root@k8s2 ~]# vim /etc/docker/daemon.json
{"insecure-registries" : ["reg.westos.org:5000"]
}[root@k8s2 docker]# systemctl  restart docker

拉取镜像

[root@k8s2 docker]# docker pull reg.westos.org:5000/nginx

三、仓库加密

升级软件包

[root@k8s1 ~]# yum install -y openssl11-1.1.1k-2.el7.x86_64.rpm openssl11-libs-1.1.1k-2.el7.x86_64.rpm[root@k8s1 ~]# mkdir certs
[root@k8s1 ~]# openssl11 req -newkey rsa:4096 -nodes -sha256 -keyout certs/westos.org.key -addext "subjectAltName = DNS:reg.westos.org" -x509 -days 365 -out certs/westos.org.crt

域名保持一致

[root@k8s1 ~]# docker run -d -p 443:443 --restart=always --name registry -v /opt/registry:/var/lib/registry -v /root/certs:/certs -e REGISTRY_HTTP_ADDR=0.0.0.0:443 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/westos.org.crt -e REGISTRY_HTTP_TLS_KEY=/certs/westos.org.key registry

部署客户端证书,不然会报错

[root@k8s1 ~]# docker tag nginx:latest reg.westos.org/nginx:latest
[root@k8s1 ~]# docker push reg.westos.org/nginx:latest                                                                                             The push refers to repository [reg.westos.org/nginx]
Get "https://reg.westos.org/v2/": x509: certificate signed by unknown authority[root@k8s1 ~]# mkdir -p /etc/docker/certs.d/reg.westos.org/
[root@k8s1 ~]# cp /root/certs/westos.org.crt /etc/docker/certs.d/reg.westos.org/ca.crt

验证

[root@k8s1 ~]# docker push reg.westos.org/nginx:latest[root@k8s1 reg.westos.org]# curl -k https://reg.westos.org/v2/_catalog
{"repositories":["nginx"]}

仓库认证

[root@k8s1 ~]# yum install -y httpd-tools
[root@k8s1 ~]# mkdir auth
[root@k8s1 ~]# htpasswd -Bc auth/htpasswd admin
New password:
Re-type new password:
Adding password for user admin[root@k8s1 ~]# htpasswd -B auth/htpasswd wxh
New password:
Re-type new password:
Adding password for user wxh[root@k8s1 ~]# cat auth/htpasswd
admin:$2y$05$Wm2LHttPY5a6i2KMG0fShe92d/PjnaBbGitiClcE3wqHmwO8dIDFm
wxh:$2y$05$9rE9CXyZ1fdcMammhh7f6.soDHgKdSsi0DXBgkRW5sKRw5sEJo1lK

删除registry,重建

[root@k8s1 ~]# docker rm -f registry
[root@k8s1 ~]# docker run -d -p 443:443 --restart=always --name registry -v /opt/registry:/var/lib/registry -v /root/certs:/certs -e REGISTRY_HTTP_ADDR=0.0.0.0:443 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/westos.org.crt -e REGISTRY_HTTP_TLS_KEY=/certs/westos.org.key -v /root/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd registry

登录仓库,不然无法上传下载

[root@k8s1 ~]# docker login reg.westos.org
Username: admin
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded
[root@k8s1 ~]# cat .docker/config.json
{"auths": {"reg.westos.org": {"auth": "YWRtaW46d2VzdG9z"}}
}

验证

[root@k8s1 ~]# docker tag busybox:latest reg.westos.org/busybox:latest
[root@k8s1 ~]# docker push reg.westos.org/busybox:latest[root@k8s1 ~]# curl -k https://reg.westos.org/v2/_catalog  -u admin:westos
{"repositories":["busybox","nginx"]}登出
[root@k8s1 ~]# docker logout reg.westos.org

四、harbor企业级私有仓库

删除之前部署的registry,不然会冲突

[root@k8s1 ~]# docker rm -f registry[root@k8s1 ~]# tar zxf harbor-offline-installer-v2.5.0.tgz
[root@k8s1 ~]# cd harbor/
[root@k8s1 harbor]# cp harbor.yml.tmpl harbor.yml
[root@k8s1 harbor]# vim harbor.yml
hostname: reg.westos.orghttp:# port for http, default is 80. If https enabled, this port will redirect to https portport: 80https:# https port for harbor, default is 443port: 443# The path of cert and key files for nginxcertificate: /data/certs/westos.org.crtprivate_key: /data/certs/westos.org.keyharbor_admin_password: westos

拷贝证书

[root@k8s1 ~ ]# mkdir /data
[root@k8s1 ~ ]# cp -r certs /data

部署docker-compose

[root@k8s1 ~]# mv docker-compose-linux-x86_64-v2.5.0 /usr/local/bin/docker-compose
[root@k8s1 ~]# chmod +x /usr/local/bin/docker-compose

部署harbor

[root@k8s1 harbor]# ./install.sh --with-chartmuseum

使用浏览器登录仓库 用户名:admin 密码是上面配置文件设置的westos

上传镜像,首先需要执行docker login

[root@k8s1 ~]# docker push reg.westos.org/library/nginx:latest
[root@k8s1 ~]# docker push reg.westos.org/library/busybox:latest

客户端配置默认私有仓库

[root@k8s2 ~]# vim /etc/docker/daemon.json
{"registry-mirrors": ["https://reg.westos.org"]
}[root@k8s2 ~]# systemctl  restart docker

匿名拉取镜像

[root@k8s2 ~]# docker pull nginx

创建私有仓库

在这里插入图片描述

私有仓库上传和下载镜像都需要用户认证

[root@k8s2 ~]# docker login reg.westos.org

从私有仓库下载时需要指定仓库地址

[root@k8s2 ~]# docker pull reg.westos.org/westos/game2048:latest

http://www.ppmy.cn/news/356574.html

相关文章

计算机启动方式如何选择USB启动,bios设置usb启动的方法

一般的品牌机,例如联想电脑,无论台式机或笔记本,选择u盘制作启动盘的键都是F12,开机的时候按F12键会出现启动项选择界面,从中我们可以选择电脑从什么介质启动,但是bios设置usb启动的方法是什么呢?其实关于bios设置启动的方法有很多,今天小编就为大家介绍bios设置usb启动…

u大师u盘装系统win7_使用U盘安装Win7/Win8/Win10系统完美教程

通用PE U盘安装Win7/Win8/Win10完美教程(多图) 首先准备一个4G以上的U盘 一台能正常使用的电脑 下载通用pe工具箱最新版 最新版下载地址 TongYongPe_V10.3.4.20 百度云链接: https://pan.baidu.com/s/1VijyBJuG8QDHr7rz8Ks8oA 提取码:5idh 一、接下来制作…

U启动PE装机工具

导读: u盘怎样安装原版win7系统?如何使用u启动u盘装系统工具重装原版win7系统?u启动小编教大家如何使用u启动制作的u盘来安装原版 Win7系统! u启动u盘装系统需要准备? 1.一个已经使用u启动制作好启动盘的u盘。 关于如何使用u启动…

瑞星linux u盘引导盘杀毒教程,瑞星杀毒U盘怎样用U盘启动电脑

2018-01-15 电脑怎么设置u盘启动_电脑怎样设置u盘启动 现在的电脑、笔记本光驱已经越来越少了,甚至都不配光驱了。U盘则是越来越多了,不管是装系统还是维护电脑,U盘系统成了必不可少的工具。那电脑要怎么设置从U盘启动呢?下面跟安下小编一起来看看。提示:若使用U盘启动盘制作工…

win7开机卡在正在启动_Win7系统崩溃后小白的终极解决方案,看一遍你也会

WIN7系统蓝屏崩溃了你是不是心急如焚,不知所措。头条是算法推荐文章,既然你刷到了这篇文章,说明你有可能需要,点赞,转发,保存收藏吧! 第一步,准备工作: 1、一个8G优盘。 2、一台可以上网的电脑(网吧、朋友家的都可以,系统不影响)。 3、一个会用鼠标键盘看得懂文字的人…

如何通过ISO安装win7程序

从下载u启动工具到安装Ghost Win7系统教程 来源:http://www.uqidong.com时间:2013-08-12 09:17:38 怎样用u启动u盘启动盘安装ghost系统?u启动制作的启动u盘怎样安装ghost系统?今天u启动小编详述怎样使用u启动重装ghost Win7系统&a…

经济高效 无盘组网设备选购方案(转)

无盘工作站已不是一个新鲜的话题,无盘工作站就是采用一台带有硬盘的服务器带动多台无硬盘工作站工作的网络结构,工作站的配置根据具体环境确定,但必需使用带远程启动的网卡。由于无盘工作站缺少硬盘,用户不但可以节省资金&#xf…

无盘服务器pnp,深入解读无盘PNP方法,无盘系统PNP并不神秘

无盘PNP其实并没有我们想象的那么复杂,我们一起来看下无盘系统PNP的过程,要是想要就易游的无盘网卡PNP以及其它设备的PNP做一个简要的说明。希望可以为各位网吧维护的朋友在处理部署复杂网吧的时候的提供一个高效的,灵活的可行性方案。 常说的无盘客户机的PNP,其实很多时候…