harbor可视化私有镜像仓库环境及服务部署示例

 更新时间:2022年04月13日 15:30:47   作者:Tiamon_  
这篇文章主要为大家介绍了harbor可视化私有镜像仓库环境及服务部署示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪

harbor 简介

在实际生产运维中,往往需要把镜像发布到几十、上百或更多的节点上。这时单台 Docker 主机上镜像已无法满足,项目越来越多,镜像越来越多,都放到一台 Docker 主机上是不行的,我们需要一个镜像Git仓库一样系统来统一管理镜像。这里介绍的是一个企业级镜像仓库Harbor,将作为我们容器云平台的镜像仓库中心。

Harbor 是有 VMware 工资开源的容器镜像仓库。事实上,Harbor 是在Docker Rgestry 上进行了相应的企业扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面,基于角色的访问控制,AD/LDAP 集成以及审计日志等,足以满足基本企业需求。

Harbor 和 Registry 的比较

Harbor 和 Registry 都是 Docker 的镜像仓库,但是 Harbor 作为更多企业的选择,是因为相比较于 Registry 来说,它具有很多的优势。

  • 提供分层传输机制,优化网络传输

Docker 镜像是分层的,而如果每次传输都使用全量文件(所以用FTP的方式不适合),显然不经济。必须提供识别分层传输的机制,以UUID 为标识,确定传输的对象。

  • 提供 WEB 界面,优化用户体验

只用镜像的名字来进行上传下载显然很不方便,需要有一个用户界面可以支持登录、搜索功能,包括区分公有、私有镜像

  • 支持水平扩展集群

当前用户对镜像的上传下载操作集中在某服务器,需要对相应的访问压力作分解。

  • 良好的安全机制

企业中的开发团队有很多不同的职位,对于不同的职位人员,分配不同的权限,具有更好的安全性

Harbor 提供了基于角色的访问控制机制,并通过项目来对镜像进行组织和访问权限的控制。kubernetes 中通过 namespace 来对资源进行隔离,在企业级应用场景中,通过将两者进行结合可以有效将 kubernetes 使用的镜像资源进行管理和访问控制,增强镜像使用的安全性。尤其在多租户场景下,可以通过租户、namespace 和项目相结合的方式来实现对租户镜像资源的管理。
 

harbor 案例演示

环境准备

准备两台服务器,且均已部署 docker 服务

主机名服务IP
harbor-client客户端(用于上传镜像)192.168.117.130
harbor-server服务端(用于存储镜像)192.168.117.131

服务部署

harbor-server 部署

#下载 epel-release 源
	[root@harbor-server ~]# yum install -y epel-release
#下载 python 软件包管理系统
	[root@harbor-server ~]# yum install -y python-pip
#更新 pip 安装包
	[root@harbor-server ~]# pip install --upgrade pip
#安装 docker-compose (docker 的编排工具)
	[root@harbor-server ~]# pip install docker-compose
#下载 harbor 安装包并解压(github 上下载)
	[root@harbor-server ~]# yum install -y wget
	[root@harbor-server ~]# wget https://github.com/goharbor/harbor/releases/download/v2.1.1/harbor-offline-installer-v2.1.1.tgz
	[root@harbor-server ~]# tar xf harbor-offline-installer-v2.1.1.tgz 
#修改 harbor 的配置文件
	[root@harbor-server ~]# mv harbor/harbor.yml.tmpl /harbor/harbor.yml
	[root@harbor-server ~]# vim harbor/harbor.yml
	hostname: 192.168.117.131 #本机 IP
	#注释掉以下内容
	# https related config
	# https:
	  # # https port for harbor, default is 443
	  # port: 443
	  # # The path of cert and key files for nginx
	  # certificate: /your/certificate/path
	  # private_key: /your/private/key/path
#执行 harbor 安装脚本
	[root@localhost harbor]# ./harbor/install.sh 
	……略……
	✔ ----Harbor has been installed and started successfully.----
#查看 harbor 的用户和密码
	[root@localhost ~]# cat harbor/harbor.yml | grep admin
	# The IP address or hostname to access admin UI and registry service.
	# The initial password of Harbor admin
	# Remember Change the admin password from UI after launching Harbor.
	harbor_admin_password: Harbor12345

浏览器访问 http://192.168.117.131:80 并登录 harbor

在这里插入图片描述

上传本地镜像至harbor

新建项目

在这里插入图片描述

填写项目名称、分配存储容量,该项目访问级别如果没有公开,在上传镜像时需要先登录 harbor

在这里插入图片描述

在这里插入图片描述

harbor-client 上传镜像到 harbor

#修改 daemon.json 配置文件
	[root@harbor-client ~]# vim /etc/docker/daemon.json 
	{
	  "registry-mirrors": ["https://3290299n.mirror.aliyuncs.com"],
	  #注:上下两行用 “,” 分割
	  #添加下面的参数即可,docker-server 端IP和端口
	  "insecure-registries":["192.168.117.131:80"]
	}
#重启 docker 服务 
	[root@harbor-client ~]# systemctl restart docker
#修改 tomcat 镜像名称:项目名称/镜像名称:标签
	[root@harbor-client ~]# docker tag tomcat 192.168.117.131:80/tomcat/tomcat:harbor
#项目 tomcat 没有公开所以先登录 harbor,在上传镜像
	[root@harbor-client ~]# docker login 192.168.117.131:80
	Username: admin
	Password: Harbor12345
	[root@harbor-client ~]# docker push 192.168.117.131:80/tomcat/tomcat:harbor

浏览器访问 harbor,查看 tomcat 项目下是否有刚刚上传的镜像

在这里插入图片描述

拉去 harbor 上的 tomcat 镜像至本地

浏览器访问 harbor,点击 tomcat 项目、tomcat镜像,复制拉去命令在本地执行即可

在这里插入图片描述

#项目 tomcat 没有公开所以先登录 harbor,在拉取镜像
	[root@harbor-client ~]# docker login 192.168.117.131:80
	Username: admin
	Password: Harbor12345
#镜像拉去成功
	[root@harbor-client ~]# docker pull 192.168.117.131:80/tomcat/tomcat@sha256:d9097a2878b148ddbdd69346dd902b55be74cf4271e1ac45a3bfb5273f93c181
	sha256:d9097a2878b148ddbdd69346dd902b55be74cf4271e1ac45a3bfb5273f93c181: Pulling from tomcat/tomcat
	Digest: sha256:d9097a2878b148ddbdd69346dd902b55be74cf4271e1ac45a3bfb5273f93c181
	Status: Downloaded newer image for 192.168.117.131:80/tomcat/tomcat@sha256:d9097a2878b148ddbdd69346dd902b55be74cf4271e1ac45a3bfb5273f93c181
	192.168.117.131:80/tomcat/tomcat@sha256:d9097a2878b148ddbdd69346dd902b55be74cf4271e1ac45a3bfb5273f93c181
#查看镜像
	[root@harbor-client ~]# docker images
	REPOSITORY                         TAG                 IMAGE ID            CREATED             SIZE
	tomcat                             latest              6fa48e047721        10 months ago       507MB
	192.168.117.131:80/tomcat/tomcat   <none>              6fa48e047721        10 months ago       507MB

以上就是harbor可视化私有镜像仓库环境及服务部署示例的详细内容,更多关于harbor可视化私有镜像仓库环境部署的资料请关注脚本之家其它相关文章!

相关文章

  • 使用Docker安装detectron2的配置方法

    使用Docker安装detectron2的配置方法

    Detectron2 是一个用于目标检测、分割和其他视觉识别任务的平台,下面采用 docker 方式在 windows 上安装,对Docker安装detectron2的配置方法感兴趣的朋友一起看看吧
    2024-03-03
  • Docker 修改docker存储位置 修改容器镜像大小限制操作

    Docker 修改docker存储位置 修改容器镜像大小限制操作

    这篇文章主要介绍了Docker 修改docker存储位置 修改容器镜像大小限制操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • docker如何使用阿里加速器的方法

    docker如何使用阿里加速器的方法

    本篇文章主要介绍了docker如何使用阿里加速器的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • 使用DockerFile构建docker镜像挂载目录,数据卷同步问题

    使用DockerFile构建docker镜像挂载目录,数据卷同步问题

    这篇文章主要介绍了使用DockerFile构建docker镜像挂载目录,数据卷同步问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • docker如何对已经启动的容器添加目录映射(挂载目录)

    docker如何对已经启动的容器添加目录映射(挂载目录)

    当我们创建容器之后,不可避免会遇到修改配置文件的操作,下面这篇文章主要给大家介绍了关于docker如何对已经启动的容器添加目录映射(挂载目录)的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • docker容器运行后退出(怎么才能一直运行)

    docker容器运行后退出(怎么才能一直运行)

    这篇文章主要介绍了docker容器运行后退出(怎么才能一直运行),本文详细的介绍了解决方法,非常具有实用价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • Docker volume 挂载卷的实现方法

    Docker volume 挂载卷的实现方法

    这篇文章主要介绍了Docker volume 挂载卷的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • 迁移变更Docker默认数据存储目录的步骤详解

    迁移变更Docker默认数据存储目录的步骤详解

    Docker安装的默认数据目录为/var/lib/docker,但是如果/目录挂载的磁盘空间不够,就需要迁移docker数据到其他目录,接下来本就给大家介绍迁移变更Docker默认数据存储目录的操作步骤,需要的朋友可以参考下
    2023-12-12
  • CentOS7安装使用Docker的步骤

    CentOS7安装使用Docker的步骤

    本篇文章主要介绍了详解CentOS7安装使用Docker的步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • Docker部署SpringBoot的两种方法

    Docker部署SpringBoot的两种方法

    Docker是一种流行的容器化技术,可以帮助开发人员更轻松地构建、部署和运行应用程序,Spring Boot是一种快速开发框架,可以帮助开发人员更快地构建应用程序,本文主要介绍了Docker部署SpringBoot的两种方法,感兴趣的可以了解一下
    2023-10-10

最新评论