Harbor 搭建与使用

小柒博客
小柒博客
小柒博客
361
文章
100
评论
2020-06-2415:38:36 2 9.2K 3919字阅读13分3秒

Harbor 简介

Harbor 是由 VMware 公司中国团队为企业用户设计的 Registry server 开源项目,包括了权限管理(RBAC)、LDAP、审计、管理界面、自我注册、HA 等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能。

作为一个企业级私有 Registry 服务器,Harbor 提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor 支持安装在多个 Registry 节点的镜像资源复制,镜像全部保存在私有 Registry 中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor 也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。

  • 基于角色的访问控制 - 用户与 Docker 镜像仓库通过"项目"进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。
  • 镜像复制 - 镜像可以在多个 Registry 实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。
  • 图形化用户界面 - 用户可以通过浏览器来浏览,检索当前 Docker 镜像仓库,管理项目和命名空间。
  • AD/LDAP 支持 - Harbor 可以集成企业内部已有的 AD/LDAP,用于鉴权认证管理。
  • 审计管理 - 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
  • 国际化 - 已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。
  • RESTful API - RESTful API 提供给管理员对于 Harbor 更多的操控, 使得与其它管理软件集成变得更容易。
  • 部署简单 - 提供在线和离线两种安装工具,也可以安装到 vSphere 平台(OVA 方式)虚拟设备。

项目介绍

harbor git地址

优点:

  • 本身自代 docker 私有仓库
  • 支持基于角色的权限管理
  • 支持 LDAP

harbor安装

运行环境是Centos 7.8

前置条件

1)需要安装docker并运行

yum -y install docker-ce      # 安装docker

systemctl start docker         # 运行docker服务

2)需要安装docker-compose

yum -y install docker-compose

1、下载安装包

# 版本为1.10.3

[root@Docker ~]# wget https://github.com/goharbor/harbor/releases/download/v1.10.3/harbor-offline-installer-v1.10.3.tgz

2、解压

[root@Docker ~]# tar xf harbor-offline-installer-v1.10.3.tgz

3、安装

[root@Docker ~]# cd harbor

# 修改hostnmae

[root@Docker harbor]# vim harbor.yml

将hostname改成你本机IP即可

# 注释https,不然在安装的时候会报错:ERROR:root:Error: The protocol is https but attribute ssl_cert is not set

Harbor 搭建与使用

其他配置保持默认

[root@Docker harbor]# ./install.sh

Harbor 搭建与使用

Harbor 搭建与使用

Harbor 搭建与使用

可以看到Harbor已经成功安装并启动了。

4、查看Harbor的状态

Harbor 搭建与使用

5、访问私服

172.168.1.249,默认用户名密码为:admin/Harbor12345

Harbor 搭建与使用

Harbor 搭建与使用

登录后的第一件事情永远都是修改默认密码。然后就可以在项目管理中新建和管理项目了。不过默认情况下的项目library是公开的,如果你要使用这个项目,而且域名放在公网上,请取消公开。

客户端验证

1、安装Docker

[root@localhost ~]# curl -sSL https://get.daocloud.io/docker | sh

# 启动Docker

[root@localhost ~]# systemctl start docker

2、配置客户端信任http

由于从docker1.3.2版本开始,使用registry时,必须使用TLS保证其安全。我们不用https的话,需要在客户机中增加一个配置文件。

[root@localhost ~]# vim /etc/docker/daemon.json

{
        "registry-mirrors": ["http://172.168.1.249:5000"]
}

# 重启Docker

[root@localhost ~]# systemctl restart docker

3、客户端登录Harbor

[root@localhost ~]# docker login -u admin -p Harbor12345 172.168.1.249

WARNING! Using --password via the CLI is insecure. Use --password-stdin.

Error response from daemon: Get https://172.168.1.249/v2/: dial tcp 172.168.1.249:443: connect: connection refused

4、修改docker.service

# 查找docker.service 所在的位置

[root@localhost ~]# find / -name docker.service

[root@localhost ~]# vim /usr/lib/systemd/system/docker.service

# 在ExecStart后面加入--insecure-registry=172.168.1.249

5、重新启动服务

[root@localhost ~]# systemctl daemon-reload

[root@localhost ~]# systemctl reload docker

[root@localhost ~]# docker login -u admin -p Harbor12345 172.168.1.249

Harbor 搭建与使用

6、验证推送镜像

# pull镜像

[root@localhost ~]# docker pull hello-world

Using default tag: latest

latest: Pulling from library/hello-world

0e03bdcc26d7: Pull complete

Digest: sha256:d58e752213a51785838f9eed2b7a498ffa1cb3aa7f946dda11af39286c3db9a9

Status: Downloaded newer image for hello-world:latest

docker.io/library/hello-world:latest

# 打标签

[root@localhost ~]# docker tag hello-world 172.168.1.249/library/hello-world:v1

# 推送到Harbor

[root@localhost ~]# docker push 172.168.1.249/library/hello-world:v1

The push refers to repository [172.168.1.249/library/hello-world]

9c27e219663c: Pushed

v1: digest: sha256:90659bf80b44ce6be8234e6ff90a1ac34acbeb826903b02cfa0da11c82cbc042 size: 525

7、查看Harbor

Harbor 搭建与使用

显示已经成功上传了。

8、删除本地的镜像,从Harbor上pull

# 查看本地镜像

[root@localhost ~]# docker images

REPOSITORY                                       TAG    IMAGE ID             CREATED             SIZE

172.168.1.249/library/hello-world    v1       bf756fb1ae65      5 months ago     13.3kB

hello-world                                         latest   bf756fb1ae65     5 months ago     13.3kB

# 删除本地镜像

[root@localhost ~]# docker rmi -f bf756fb1ae65

[root@localhost ~]# docker images

REPOSITORY        TAG         IMAGE ID         CREATED         SIZE

# 从Harbor上pull镜像

[root@localhost ~]# docker pull 172.168.1.249/library/hello-world:v1

v1: Pulling from library/hello-world

0e03bdcc26d7: Pull complete

Digest: sha256:90659bf80b44ce6be8234e6ff90a1ac34acbeb826903b02cfa0da11c82cbc042

Status: Downloaded newer image for 172.168.1.249/library/hello-world:v1

172.168.1.249/library/hello-world:v1

# 查看镜像

REPOSITORY                                          TAG    IMAGE ID            CREATED             SIZE

172.168.1.249/library/hello-world       v1      bf756fb1ae65      5 months ago     13.3kB

继续阅读
若文章图片、下载链接等信息出错,请在评论区留言反馈,博主将第一时间更新!如果喜欢本站,请打赏支持本站,谢谢!
  • 微信号
  • 微信扫一扫加我!
  • weinxin
  • 微信公众号
  • 微信扫一扫关注我!
  • weinxin
Docker 最后更新:2020-7-8
小柒博客
  • 本文由 发表于 2020-06-2415:38:36
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
Docker 安装 Apache Docker

Docker 安装 Apache

Docker 安装 Apache Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。...
Docker 安装 MongoDB Docker

Docker 安装 MongoDB

Docker 安装 MongoDB MongoDB 简介 MongoDB是一个基于分布式文件存储 的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoD...
Docker 安装 Redis Docker

Docker 安装 Redis

Docker 安装 Redis Redis 简介 Redis 是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value的NoSQL数据库,并提供多种语言...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

 

评论:2   其中:访客  2   博主  0
    • 匿名网友 匿名网友 0

      不错。

      • 飒飒 飒飒 0

        写的不错