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

目录
  • harbor 简介
    • Harbor 和 Registry 的比较
  • harbor 案例演示
    • 环境准备
    • 服务部署
    • 上传本地镜像至harbor
    • 拉去 harbor 上的 tomcat 镜像至本地

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可视化私有镜像仓库环境部署的资料请关注我们其它相关文章!

(0)

相关推荐

  • Docker私有仓库Harbor介绍和部署方法详解

    Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的.这里介绍一款企业级Docker镜像仓库Harbor的部署和使用,在Kubernetes集群中,推荐使用Harbor仓库环境. 一.Harbor仓库介绍 我们在日常Docker容器使用和管理过程中,渐渐发现部署企业私有仓库往往是很有必要的, 它可以帮助你管理企业的一些敏感镜像, 同时由于Docker Hub的下载速度和GF

  • 详解基于Harbor搭建Docker私有镜像仓库

    什么是 Harbor? 第一次使用这个的时候是刚进公司处理的第一个任务的时候,发现 Harbor 就是一个用于存储和分发 Docker 镜像的企业级Registry 服务器. 网上找到一个 Harbor 的架构图: Harbor 是 VMware 公司开源的企业级 DockerRegistry 项目,项目地址为 https://github.com/vmware/harbor.其目标是帮助用户迅速搭建一个企业级的 Docker registry 服务.它以 Docker 公司开源的 regist

  • 镜像仓库 Harbor搭建和使用教程

    目录 镜像仓库 Docker Hub 公共镜像 私有镜像(内部) Docker搭建 Docker-compose Harbor docker客户端访问 镜像仓库 Docker Hub 公共镜像 docker 官方提供的公共镜像需要去Docker官方注册一个账号 私有镜像(内部) Docker官方提供私有仓库解决方案 docker-registryWMWare公司 Harbor特性1.基于角色的访问控制2.镜像的复制3.LDAP/AD4.镜像的删除和垃圾收集5.国际化/本地化6.图形化的用户界面7

  • Docker搭建私有仓库(registry与Harbor)的实现

    随着docker使用的镜像越来越多,就需要有一个保存镜像的地方,这就是仓库.目前常用的两种仓库:公共仓库和私有仓库.最方便的就是使用公共仓库上传和下载,下载公共仓库的镜像是不需要注册的,但是上传时,是需要注册的. 私有仓库最常用的就是registry.Harbor两种,那接下来详细介绍如何创建私有仓库. 一.搭建registry私有仓库 1)案例描述 两台docker服务器,dockerA创建registry私有仓库,dockerB用于测试! 2)案例实例 (1)DockerA服务器的操作 [r

  • Docker搭建私有仓库之Harbor的步骤

    Harbor Harbor是构建企业级私有docker镜像的仓库的开源解决方案,它是Docker Registry的更高级封装, 它除了提供友好的Web UI界面,角色和用户权限管理,用户操作审计等功能外,它还整合了K8s的插件(Add-ons)仓库,即Helm通过chart方式下载,管理,安装K8s插件,而chartmuseum可以提供存储chart数据的仓库[注:helm就相当于k8s的yum].另外它还整合了两个开源的安全组件,一个是Notary,另一个是Clair,Notary类似于私有

  • docker私有仓库harbor搭建过程

    1.准备 1.1 harbor下载 harbor下载地址:链接添加链接描述 然后我们可以选择自己需要的版本,我这边选择的是v1.8.3 也可以去 wget https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.3.tgz 1.2 docker安装 docker 安装以及yum源的安装可以参考<docker入门教程(二)>文章. 2.搭建 2.1 解压harbor ta

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

    目录 harbor 简介 Harbor 和 Registry 的比较 harbor 案例演示 环境准备 服务部署 上传本地镜像至harbor 拉去 harbor 上的 tomcat 镜像至本地 harbor 简介 在实际生产运维中,往往需要把镜像发布到几十.上百或更多的节点上.这时单台 Docker 主机上镜像已无法满足,项目越来越多,镜像越来越多,都放到一台 Docker 主机上是不行的,我们需要一个镜像Git仓库一样系统来统一管理镜像.这里介绍的是一个企业级镜像仓库Harbor,将作为我们容

  • Docker registry私有镜像仓库服务部署案例演示

    目录 简介 registry 案例演示 环境准备 服务部署 简介 docker-registry 是官方提供的工具,可以用于构建私有的镜像仓库,仓库默认会被创建在/var/lib/registry目录下(容器中的目录) registry 案例演示 环境准备 主机名 服务 IP docker-client 客户端(用于上传镜像) 192.168.117.130 docker-server 服务端(用于存储镜像) 192.168.117.131 服务部署 docker-server 运行 regis

  • Python实现Harbor私有镜像仓库垃圾自动化清理详情

    目录 一.编写Python脚本 二.执行Python脚本 一.编写Python脚本 [root@lidabai ~]# vim harbor_clearimage.py # -*- coding:utf-8 -*- import requests from requests.auth import HTTPBasicAuth from requests.adapters import HTTPAdapter from requests.packages.urllib3.util.retry im

  • Docker搭建私有镜像仓库的方法

    和Mavan的管理一样,Dockers不仅提供了一个中央仓库,同时也允许我们使用registry搭建本地私有仓库. 使用私有仓库有许多优点: 节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可: 提供镜像资源利用,针对于公司内部使用的镜像,推送到本地的私有仓库中,以供公司内部相关人员使用. 现在Docker用处越来越多了,所以今天就想着搭建一个私有镜像仓库来维护内部我们自己的镜像. 环境 CentOS 7.x Docker 1.12.6 安装 docker-

  • 安装harbor作为docker镜像仓库的问题

    目录 一.docker和docker-compose离线部署 1.上传docker-20.10.9.tgz安装包并解压 2.docker.service文件 3.启动Docker 4.docker-compose部署 5.测试docker-compose 二.安装harbor作为本地的仓库 1.解压harbor-offline-installer-v2.3.0.tgz 2.进入harbor目录,修改harbor.yml 3.配置docker client,编辑/etc/docker/daemon

  • 阿里云部署Docker私有镜像仓库的实现步骤

    目录 一.访问阿里云容器镜像服务地址 二.选择实例 三.创建命名空间 四.创建镜像仓库 五.上传镜像 六.查看推送好的镜像 参考: 一.访问阿里云容器镜像服务地址 地址:https://cr.console.aliyun.com/cn-beijing/instances 提示开通->设置密码(为Docker仓库密码) 二.选择实例 三.创建命名空间 四.创建镜像仓库 五.上传镜像 选择对应的仓库 这里显示了具体的操作方法. # 登录 [root@node01 ~]# docker login -

  • CentOS7.2服务器上搭建Docker私有镜像仓库操作示例

    本文实例讲述了CentOS7.2服务器上搭建Docker私有镜像仓库操作.分享给大家供大家参考,具体如下: 鉴于国内pull镜像的速度较慢,很有必要搭建docker私有或者本地镜像仓库. 安装docker # yum -y install docker # systemctl start docker && systemctl enable docker 使用自签名进行安全认证 创建存放证书和密钥的certs目录 # mkdir -p /docker/certs # chcon -Rt s

  • Docker Registry搭建私有镜像仓库的实现方法

    微服务的镜像会上传到Docker仓库保存,常用的公网Docker仓库有阿里云,网易云等,在企业局域网也可以搭建自己的Docker私有仓库,本教程使用Docker提供的私有仓库registry. 1.拉取私有仓库镜像 docker pull registry 2.创建启动私有仓库容器 docker run -dit -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name docker-registry reg

  • 基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持续集成交付环境的详细教程

    环境搭建概述 亲爱的家人们可以到链接:http://xiazai.jb51.net/202105/yuanma/javayaml_jb51.rar  下载所需要的yaml文件. 1.K8S是什么? K8S全称是Kubernetes,是一个全新的基于容器技术的分布式架构领先方案,基于容器技术,目的是实现资源管理的自动化,以及跨多个数据中心的资源利用率的最大化. 如果我们的系统设计遵循了kubernetes的设计思想,那么传统系统架构中那些和业务没有多大关系的底层代码或功能模块,都可以使用K8S来管

随机推荐