Docker容器harbor私有仓库部署和管理

目录
  • 前言
  • 一、Harbor概述
  • 二、Harbor的特性
  • 三、Harbor的构成
  • 四、Harbor私有仓库搭建
    • (1)安装docker-compose
    • (2)安装harbor
    • (3)新建项目
    • (4)镜像推送
    • (5)从私有仓库下载镜像
    • (6)Harbor管理

前言

之前我们搭建了本地私有仓库,但是本地仓库的管理和使用比较麻烦,个原生的私有仓库并不好用,所以我们采用harbor私有仓库,也叫私服,更加人性化。

一、Harbor概述

  • Harbor是VMware公司开源的企业级Docker Registry项目,其目标是帮助用户迅速搭建一个企业级的Docker Registry服务。
  • Harbor以Docker 公司开源的Registry 为基础,提供了图形管理UI、基于角色的访问控制(Role Based AccessControl)、AD/LDAI们成以心宙计日志(Auditlogging)等企业用户需求的功能,同时还原生支持中文。
  • Harbor的每个组件都是以Docker容器的形式构建的,使用docker-compose来对它进行部署。用于部署Harbor的docker-compose模板位于harbor/docker-compose.yml。

二、Harbor的特性

  • 基于角色控制:用户和仓库都是基于项目进行组织的,而用户在项目中可以拥有不同的权限。
  • 基于镜像的复制策略:镜像可以在多个Harbor实例之间进行复制(同步)
  • 支持LDAP/AD:Harbor可以集成企业内部已有的AD/LDAP(类似数据库的一张表),用于对已经存在的用户认证和管理。
  • 镜像删除和垃圾回收:镜像可以被删除,也可以回收镜像占用的空间。
  • 图形化用户界面:用户可以通过浏览器来浏览,搜索镜像仓库以及对项目进行管理。
  • 审计管理:所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
  • 支持 RESTful API:RESTful API 提供给管理员对于Harbor更多的操控,使得与其它管理软件集成变得更容易。
  • Harbor和docker registry的关系:Harbor实质上是对docker registry做了封装,扩展了自己的业务模板。

三、Harbor的构成

Harbor在架构上主要有proxy、Registry、Core services、Database(Harbor-db)、Log collector(Harbor-log)、Job services六个组件。

  • Proxy:是一个nginx的前端代理,Harbor的Registry、UI、Token服务等组件,都处在nginx反向代理后边。该代理将来自浏览器、docker clients的请求转发到后端不同的服务上。
  • Registry:负责存储Docker镜像,并处理Docker push/pull命令。由于要对用户进行访问控制,即不同用户对Docker镜像有不同的读写权限,Registry会指向一个Token服务,强制用户的每次Docker pull/push请求都要携带一个合法的Token,Registry会通过公钥对Token进行解密验证。
  • Core services:Harbor的核心功能,主要提供一下3个服务:

UI(harbor-ui):提供图形化界面,帮助用户管理Registry上的镜像(image),并对用户进行授权。
WebHook:为了及时获取Registry上image状态变化的情况,在Registry上配置WebHook,把状态变化传递给UI模块。
Token服务:负责根据用户权限给每个Docker push/pull命令签发Token.Docker客户端向Registry服务发起的请求,如果不包含Docker Token,会被重定向到Token服务,获得Token后再重新向Registry进行请求。

  • Database(harbor-db):为core services提供数据库服务,负责存储用户权限、审计日志、Docker镜像分组信息等数据。Docker数据存储在文件系统,但是分组信息存储在数据库。
  • Job services:主要用于镜像复制,本地镜像可以被同步到远程Harbor实例上。
  • Log collector(harbor-log):负责收集其他组件的日志到一个地方。

Harbor 的每个组件都是以 Docker 容器的形式构建的,因此,使用 Docker Compose 来对它进行部署。
总共分为7个容器运行,通过在docker-compose.yml所在目录中执行 docker-compose ps 命令来查看, 名称分别为:nginx、harbor-jobservice、harbor-ui、harbor-db、harbor-adminserver、registry、harbor-log。
其中 harbor-adminserver 主要是作为一个后端的配置数据管理,并没有太多的其他功能。harbor-ui 所要操作的所有数据都通过 harbor-adminserver 这样一个数据配置管理中心来完成

四、Harbor私有仓库搭建

(1)安装docker-compose

cd /opt
#上传docker-compose
mv docker-compose /usr/bin
chmod +x /usr/bin/docker-compose

(2)安装harbor

rz harbor-offline-installer-v1.2.2.tgz
tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/
#==配置Harbor参数文件==
vim /usr/local/harbor/harbor.cfg
#==第5行修改==
hostname = 192.168.48.14

安装harbor镜像

sh /usr/local/harbor/install.sh

查看镜像与容器:

docker ps
docker images

物理机访问server IP

192.168.48.14
用户名:admin
密码:Harbor12345

(3)新建项目

(4)镜像推送

#登录私有仓库
docker login -u admin -p Harbor12345 http://192.168.48.14
vim /etc/docker/daemon.json
{
  "insecure-registries": ["192.168.48.14"]
}

#下载镜像进行测试
docker pull nginx

#镜像打标签
docker tag nginx 192.168.48.14/xy/nginx:v1

#上传镜像到Harbor
docker push 192.168.48.14/xy/nginx:v1

浏览器访问仓库,查看镜像

(5)从私有仓库下载镜像

使用另外一台服务器,进行镜像下载

#添加私有仓库地址
vim /etc/docker/daemon.json
{
  "insecure-registries": ["192.168.48.14"]
}
#下载镜像
#docker pull 私有仓库地址/仓库名/镜像名:标签
docker pull 192.168.48.14/xy/nginx:v1

查看Hardor日志:

(6)Harbor管理

可以使用 docker-compose 来管理 Harbor。一些有用的命令如下所示,必须在与docker-compose.yml 相同的目录中运行。

修改 Harbor.cfg 配置文件:

  • 要更改 Harbour 的配置文件时,请先停止现有的 Harbour 实例并更新 Harbor.cfg;
  • 然后运行 prepare 脚本来填充配置;
  • 最后重新创建并启动 Harbour 的实例。
#卸载
docker-compose down -v

#编辑配置文件
vim harbor.cfg

#填充配置
./prepare

#启动Harbor
docker-compose up -d

#如果报错
解决思路
关闭防火墙、重启docker
systemctl stop firewalld
setenfore 0
systemctl restart docker

到此这篇关于Docker容器harbor私有仓库部署和管理的文章就介绍到这了,更多相关Docker harbor内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • .Net使用Docker开发部署

    .NET多年以前已经开始支持Docker,但由于国内.net现状,生产过程中几乎用不到docker支持,趁着有点时间捣鼓下. 先期工作 1.首先安装Docker Desktop 2.安装Visual Studio 创建项目 使用VS分别创建一个ASP.NET Core Api(WebApplication1)与 ASP.NET Core 应用(WebApplication2) 如果项目已经存在,可以选中项目,右键点击->选择添加Docker支持. 在弹出对话框中选择Linux. 项目支持dock

  • 在Docker容器中部署MSSQL

    部署MSSQL需要2G内存 1.下载镜像 docker pull microsoft/mssql-server-linux 使用该命令就可以把数据库的docker镜像下载下来. 2.创建并运行容器 docker run --name MSSQL_1433 -m 512m -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 -d microsoft/mssql-server-linux 这个密码需要复杂密码,

  • 使用Docker容器部署Vue程序

    目录 一.安装Nginx 二.创建Vue程序 1.创建项目 2.编译项目 3.添加Dockerfile文件 4.上传文件 5.构建镜像 6.运行容器 一.安装Nginx 我们部署Vue程序依赖Nginx,首先拉取Nginx的镜像,这里使用Nginx最新的镜像 docker pull nginx 如图所示 我们查看镜像 已经有了nginx镜像. 我们根据nginx镜像运行容器 docker run --name=nginx -d -p 4030:80 nginx 如图所示 然后在浏览器里面访问40

  • Docker容器部署consul的详细步骤

    目录 Consul简介 Consul 使用场景 -consul部署- 容器服务自动加入consul集群 安装Gliderlabs/Registrator Gliderlabs/Registrator 测试服务发现功能是否正常 安装consul-template 安装nginx 配置并启动template Consul简介 Consul 是一个支持多数据中心分布式高可用的 服务发现 和 配置共享 的服务软件,由 HashiCorp 公司用 Go 语言开发, 基于 Mozilla Public Li

  • docker容器安装及部署的超详细入门教程

    目录 1.安装docker 2.docker 安装 redis 3.docker 安装rabbitmq 4.docker 安装postgresql 5.docker 安装jdk 并配置环境变量 6.停止和删除容器 7.Docker部署SpringBoot项目 总结 1.安装docker (1)卸载以前安装的Docker容器 sudo yum remove docker \ docker-client \ docker-client-latest \docker-common \docker-la

  • 使用Docker容器部署MongoDB并支持远程访问及遇到的坑

    目录 前言 Docker & MongoDB Docker MongoDB 使用Docker部署MongoDB 容器中换源 更改配置 开放端口 前言 由于使用宝塔面板来配置MongoDB的BUG太多,实在受不了,今天心血来潮想要使用Docker容器来进行部署.本来以为也就二三十分钟的事情结果踩坑踩了将近两个小时,不过万幸还是成功部署上了 Docker & MongoDB 在开始讲之前,我们需要知道Docker和MongoDB是什么,虽然这两个工具已经非常流行,但可能还是有读者不知道其详细概

  • Docker容器Consul部署概述

    目录 一.Consul概述 二.Consul的特性 三.Consul的使用场景 四.搭建consul集群 (1)server部署 (2)client部署 (3)配置template模板自动更新 (4)测试访问代理服务器 一.Consul概述 template 模板(更新)registrator(自动发现)后端每构建出一个容器,会向registrator进行注册,控制consul 完成更新操作,consul会触发consul template模板进行热更新核心机制:consul :自动发现.自动更

  • Docker容器harbor私有仓库部署和管理

    目录 前言 一.Harbor概述 二.Harbor的特性 三.Harbor的构成 四.Harbor私有仓库搭建 (1)安装docker-compose (2)安装harbor (3)新建项目 (4)镜像推送 (5)从私有仓库下载镜像 (6)Harbor管理 前言 之前我们搭建了本地私有仓库,但是本地仓库的管理和使用比较麻烦,个原生的私有仓库并不好用,所以我们采用harbor私有仓库,也叫私服,更加人性化. 一.Harbor概述 Harbor是VMware公司开源的企业级Docker Regist

  • Docker搭建Harbor公开仓库的方法示例

    上一篇博文讲到了Registry私有仓库,今天配置一下Harbor仓库,Harbor呢可以作为公开仓库,也可以作为私有仓库,今天就来配置一下Harbor如何实现公开仓库和私有仓库. 关于Registry公开仓库请访问博文:部署Docker私有仓库Registry Registry和Harbor的区别 Registry:是一个私有镜像仓库,图形化支持较差,小型企业使用: Harbor:支持可视化管理,支持私有仓库和公有仓库,支持镜像的管理控制: Docker Harbor的优点 VMWare公司的

  • Docker容器上用DockerFile部署多个tomcat服务的步骤

    1. [admin@JD ~]$ cd opt #进入根目录下的opt 里 2. [admin@JD opt]$ mkdir web #创建Web 文件夹 3. [admin@JD web]$ cd web/ #进入web文件夹 4. [admin@JD web]$ touch Dockerfile #创建一个Dockerfile文件夹 名字不能错必须是这个名字否者检测不到 5. 利用三方工具将 tomcat 和 jdk的 上传到Web文件夹 6. [admin@JD web]$ vim Doc

  • 利用Docker搭建Nexus私有仓库实现Maven私服

    目录 一.前言 二.Nexus搭建 三.配置仓库 3.1 配置加速库 3.2 创建私有仓库 四.配置权限 五.上传Jar包 六.使用Jar包 一.前言 相信国内的小伙伴都经历过,Gradle.Maven.NPM下拉速度过慢的情况.我们一般的做法是配置阿里云这样的中央仓库.加速问题是可以采用这种方式解决,但如果是团队内部的库想进行上传分发,传到Maven Central这种共用的Maven仓库就不太合适了.那样保密性和时效性都将收到破坏.所以在团队内部,我们一般都会搭建局域网内私有的中央仓库.支撑

  • 使用docker compose安装harbor私有仓库的详细教程

    概述 harbor是什么呢?英文单词的意思是:港湾.港湾用来存放集装箱(货物的),而docker的由来正是借鉴了集装箱的原理,所以harbor是用于存放docker的镜像,作为镜像仓库使用.官方的说法是:Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器. harbor镜像仓库是由VMware开源的一款企业级镜像仓库,它包括权限管理(RBAC).LDAP.日志审核.管理界面.自我注册.镜像复制等诸多功能. 一.harbor特性 1.基于角色的访问控制:用户和存储库是通

  • Docker搭建本地私有仓库的详细步骤

    和Mavan的管理一样,Dockers不仅提供了一个中央仓库,同时也允许我们使用registry搭建本地私有仓库.使用私有仓库有许多优点: 一.节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可: 二.提供镜像资源利用,针对于公司内部使用的镜像,推送到本地的私有仓库中,以供公司内部相关人员使用. 接下来我们就大致说一下如何在本地搭建私有仓库. 环境准备 环境:两个装有Docker的Ubuntu虚拟机 虚拟机一:192.168.112.132 用户开发机 虚拟

  • 详解Ubuntu Docker Registry 搭建私有仓库

    服务器版本 Ubuntu 16.04 LTS. 安装命令: 复制代码 代码如下: $ docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry Registry 服务默认会将镜像保存在/var/lib/registry目录下,上面命令设置保存目录在/opt/registry下,我们可以看下 Registry 容器状态: $ docker ps CO

  • Docker 教程之私有仓库详解

    私有仓库 有时候使用 Docker Hub 这样的公共仓库可能不方便,用户可以创建一个本地仓库供私人使用. 本节介绍如何使用本地仓库. docker-registry 是官方提供的工具,可以用于构建私有的镜像仓库. 安装运行 docker-registry 容器运行 在安装了 Docker 后,可以通过获取官方 registry 镜像来运行. $ sudo docker run -d -p 5000:5000 registry 这将使用官方的 registry 镜像来启动本地的私有仓库. 用户可

  • docker 如何搭建私有仓库(ubuntu 14.04,Docker版本1.6.4)详细介绍

    docker 搭建私有仓库 本篇文章描述了多个机器可以在内网中访问自己的私有仓库,访问仓库时需要CA认证!最简单,最低保障私有仓库的安全性!在一个比较庞大的集群里,可以运行多个私有仓库的replica,然后借用代理来balance请求! 1.测试环境 本人测试环境为ubuntu 14.04,Docker版本1.6.4(版本稍微比较老,新版本安装流程是一样的).官网上说:You need to install Docker version 1.6.0 or newer. 在阿里云上开了两台机器:

  • 如何使用Docker搭建pypi私有仓库

    一.搭建 1.准备htpasswd.txt文件 该文件内容包含上传包至仓库时验证的用户名和密码 pip install htpasswd htpasswd -sc htpasswd.txt <username> 2.启动容器 docker run --name pypiserver --restart=always -v /data/pypi/packages:/data/packages -v /root/htpasswd.txt:/data/htpasswd.txt -p 8080:808

随机推荐