Docker仓库管理工具Harbor

简介:

Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等
官网地址:http://vmware.github.io/harbor/index_cn.html
官方github地址:https://github.com/vmware/harbor

Harbor的官方功能介绍:

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

部署Harbor1.75分布式集群

环境准备

系统:centos7.6
关闭防火墙:systemctl stop firewalld
关闭selinux:setenforce 0
node1 IP:192.168.8.156
node2 IP:192.168.8.134

安装docker

服务器1

[[email protected] ~]#yum install docker -y
[[email protected] ~]#vim /lib/systemd/system/docker.service
#在此行末尾添加本机IP地址
14:ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 192.168.8.156
[[email protected] ~]#systemctl  start  docker
[[email protected] ~]#systemctl  enable  docker

服务器2

[[email protected] ~]#yum install docker -y
[[email protected] ~]#vim /lib/systemd/system/docker.service
14:ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 192.168.8.134
[[email protected] ~]#systemctl  start  docker
[[email protected] ~]#systemctl  enable  docker

下载Harbor离线安装包

官方安装文档:https://github.com/vmware/harbor/blob/master/docs/installation_guide.md
服务器1

[[email protected] ~]#cd /usr/local/src/
[[email protected] harbor]#wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.5.tgz

服务器2

[[email protected] ~]#cd /usr/local/src/
[[email protected] harbor]#wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.5.tgz

配置 Harbor

服务器1

[[email protected] ~]#cd /usr/local/harbor/
[[email protected] harbor]#tar xvf harbor-offline-installer-v1.7.5.tgz
[[email protected] harbor]#vim harbor.cfg
[[email protected] harbor]# grep "^[a-Z]" harbor.cfg
#本机IP地址
hostname = 192.168.8.156
#通讯传输协议
ui_url_protocol = http
max_job_workers = 10
customize_crt = on
ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key
secretkey_path = /data
admiral_url = NA
log_rotate_count = 50
#日志滚动大小
log_rotate_size = 200M
http_proxy =
https_proxy =
no_proxy = 127.0.0.1,localhost,core,registry
#设置通知邮箱地址,也可在web界面设置
email_identity =
email_server = smtp.mydomain.com
email_server_port = 25
email_username = [email protected]
email_password = abc
email_from = admin <[email protected]>
email_ssl = false
email_insecure = false
#设置登录密码
harbor_admin_password = 123456
auth_mode = db_auth
ldap_url = ldaps://ldap.mydomain.com
ldap_basedn = ou=people,dc=mydomain,dc=com
ldap_uid = uid
ldap_scope = 2
ldap_timeout = 5
ldap_verify_cert = true
ldap_group_basedn = ou=group,dc=mydomain,dc=com
ldap_group_filter = objectclass=group
ldap_group_gid = cn
ldap_group_scope = 2
self_registration = on
token_expiration = 30
project_creation_restriction = everyone
db_host = postgresql
db_password = root123
db_port = 5432
db_user = postgres
redis_host = redis
redis_port = 6379
redis_password =
redis_db_index = 1,2,3
clair_db_host = postgresql
clair_db_password = root123
clair_db_port = 5432
clair_db_username = postgres
clair_db = postgres
clair_updaters_interval = 12
uaa_endpoint = uaa.mydomain.org
uaa_clientid = id
uaa_clientsecret = secret
uaa_verify_cert = true
uaa_ca_cert = /path/to/ca.pem
registry_storage_provider_name = filesystem
registry_storage_provider_config =
registry_custom_ca_bundle =
[[email protected]  harbor]#./install.sh
#启动后会下载很多镜像,需要等待一些时间
[Step 0]: checking installation environment ...

Note: docker version: 18.09.7

Note: docker-compose version: 1.18.0

[Step 1]: loading Harbor images ...
f60840e24dbf: Loading layer [==================================================>]  33.23MB/33.23MB
ea7b46fcd541: Loading layer [==================================================>]  8.959MB/8.959MB
79b1bab71f92: Loading layer [==================================================>]   15.6MB/15.6MB
e44aff944dd8: Loading layer [==================================================>]  18.94kB/18.94kB
7f6318c65689: Loading layer [==================================================>]   15.6MB/15.6MB
Loaded image: goharbor/harbor-adminserver:v1.7.5
[Step 0]: checking installation environment ...

服务器2配置

[[email protected] ~]#cd /usr/local/harbor/
[[email protected] harbor]#tar xvf harbor-offline-installer-v1.7.5.tgz
[[email protected] harbor]#vim harbor.cfg
[[email protected] harbor]# grep "^[a-Z]" harbor.cfg
hostname = 192.168.8.134
ui_url_protocol = http
max_job_workers = 10
customize_crt = on
ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key
secretkey_path = /data
admiral_url = NA
log_rotate_count = 50
log_rotate_size = 200M
http_proxy =
https_proxy =
no_proxy = 127.0.0.1,localhost,core,registry
email_identity =
email_server = smtp.mydomain.com
email_server_port = 25
email_username = [email protected]
email_password = abc
email_from = admin <[email protected]>
email_ssl = false
email_insecure = false
harbor_admin_password = 123456
auth_mode = db_auth
ldap_url = ldaps://ldap.mydomain.com
ldap_basedn = ou=people,dc=mydomain,dc=com
ldap_uid = uid
ldap_scope = 2
ldap_timeout = 5
ldap_verify_cert = true
ldap_group_basedn = ou=group,dc=mydomain,dc=com
ldap_group_filter = objectclass=group
ldap_group_gid = cn
ldap_group_scope = 2
self_registration = on
token_expiration = 30
project_creation_restriction = everyone
db_host = postgresql
db_password = root123
db_port = 5432
db_user = postgres
redis_host = redis
redis_port = 6379
redis_password =
redis_db_index = 1,2,3
clair_db_host = postgresql
clair_db_password = root123
clair_db_port = 5432
clair_db_username = postgres
clair_db = postgres
clair_updaters_interval = 12
uaa_endpoint = uaa.mydomain.org
uaa_clientid = id
uaa_clientsecret = secret
uaa_verify_cert = true
uaa_ca_cert = /path/to/ca.pem
registry_storage_provider_name = filesystem
registry_storage_provider_config =
registry_custom_ca_bundle =
[[email protected]  harbor]#./install.sh

注:

如果出现以下提示

[[email protected] harbor]#./install.sh
Note: docker version: 18.09.7
? Need to install docker-compose(1.7.1+) by yourself first and run this script again.

则需要安装执行

[[email protected] ~]#yum -y install docker-compose

登录web界面进行配置

账号是admin,密码是在配置文件中设置的密码

新建项目

此处可写公开或者私有,后期也可以更改

创建复制目标

填写要复制主机的IP,并且不启动远程验证证书

创建完成

在node1节点上传镜像并验证

登录harbor账号

[[email protected] ~]#docker login 192.168.8.156
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-store

Login Succeeded

上传镜像测试

[[email protected] ~]#docker tag test/nginx:v1 192.168.8.156/myimage/nginx:v1
[[email protected] ~]#docker push 192.168.8.156/myimage/nginx:v1

Harbor常见操作

下载harbor镜像

[[email protected] ~]#docker login 192.168.8.156
[[email protected] ~]#docker pull 192.168.8.156/myimage/nginx:v1

停止和关闭harbor

[[email protected] ~]#cd /usr/local/src/harbor/
[[email protected] harbor]#docker-compose stop
[[email protected] harbor]#docker-compose start

注:必须进入到此目录下执行,否则会出错

[[email protected] ~]#docker-compose start
ERROR:
        Can‘t find a suitable configuration file in this directory or any
        parent. Are you in the right directory?

        Supported filenames: docker-compose.yml, docker-compose.yaml

原文地址:https://blog.51cto.com/14163901/2417594

时间: 2024-10-11 06:36:15

Docker仓库管理工具Harbor的相关文章

docker仓库管理以及搭建

docker仓库管理和容器连接 是什么? 仓库就类似于我们在网上搜索操作系统光盘的一个镜像站. 这里的仓库指的是Docker镜像存储的地方. 注册 在 https://hub.docker.com 免费注册一个 Docker 账号. docker仓库 公有:Docker hub.Docker cloud.等 私有:registry.harbor等 本地:在当前主机存储镜像的地方 相关操作 docker login [仓库名称] docker pull [镜像名称] docker push [镜像

Docker管理工具Web UI:DockerUI & Shipyard

本文主要介绍两款Docker Web管理工具:DockerUI及Shipyard,并对它们的部署.功能及使用进行对比.后续会介绍Docker近日最新发布的容器管理利器:swarm. 部署方面 运行命令,如果没有镜像默认会进行下载创建 docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock dockerui/dockerui 输入IP:9000   进行访问,访问结果见下图 运行如下命令,同样,如果没有镜像,默

Docker 私有仓库 Harbor registry 安全认证搭建 [Https]

Harbor源码地址:https://github.com/vmware/harborHarbort特性:基于角色控制用户和仓库都是基于项目进行组织的, 而用户基于项目可以拥有不同的权限.基于镜像的复制策略镜像可以在多个 Harbor 实例之间进行复制.支持 LDAPHarbor 的用户授权可以使用已经存在 LDAP 用户.镜像删除 & 垃圾回收Image 可以被删除并且回收 Image 占用的空间.用户 UI用户可以轻松的浏览.搜索镜像仓库以及对项目进行管理.镜像删除 & 垃圾回收绝大部

离线手动部署docker镜像仓库——harbor仓库(二)

前言: 在<离线手动部署docker镜像仓库--harbor仓库(一)>中,记录了离线部署harbor仓库的简单过程,这里主要记录修改默认访问端口80端口为1180端口的部署方式和注意点. 实验环境:harbor服务器系统:CentOS Linux release 7.4.1708 (Core)harbor服务器IP:10.0.0.101harbor版本:v1.5.0docker版本:1.13.1另外为了测试pull镜像,使用了另一台test102机器:10.0.0.102 部署过程: 1.下

Docker bridge-utils 工具简单部署

bridge-utils 网桥查看工具 # 1.安装 查看桥接工具 yum install -y bridge-utils # 2.查看桥接 命令brctl show bridge name bridge id STP enabled interfaces weave 8000.52e79f3c61a0 no vethwe-bridg Docker bridge-utils 工具简单部署 原文地址:https://www.cnblogs.com/xiangsikai/p/9900999.html

docker 镜像仓库Harbor

企业级镜像仓库Harbor Harbor概述 Habor是由VMWare公司开源的容器镜像仓库.事实上,Habor是在Docker Registry上进行了相应的 企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面,基于角色的访 问控制 ,AD/LDAP集成以及审计日志等,足以满足基本企业需求. 官方地址:https://vmware.github.io/harbor/cn/ 安装1.解压[[email protected] tools]# tar xf harbor-o

企业级docker私有仓库harbor在Ubuntu14.04上的部署与使用

一.harbor简介: 简单的说,Harbor 是一个企业级的 Docker Registry,可以实现 images 的私有存储和日志统计权限控制等功能,并支持创建多项目(Harbor 提出的概念),基于官方 Registry V2 实现的. 二.部署方法: 操作系统:Ubuntu14.04 1.安装docker: #安装插件 sudo apt-get install apt-transport-https ca-certificates #添加GPG key sudo apt-key adv

Docker: vmware企业级docker镜像私服--Harbor的搭建

1.下载harbor,地址https://github.com/vmware/harbor2.进入harbor-master/Deploy目录,修改harbor.cfg文件,主要修改以下信息     2.1.hostname =10.10.10.10 (这个是harbor所在服务器的ip,不能写127.0.0.1)     2.2.修改邮箱相关信息 3.执行./prepare命令 4.1 Ubuntu:   (sudo vi /etc/default/docker) DOCKER_OPTS="-

巧用Docker镜像仓库Harbor部署私有Mirror服务

本文作者付广平,UnitedStack有云存储工程师,北京邮电大学硕士,从事大数据和云计算相关工作,2016年毕业后加入UnitedStack大数据&容器组,负责Docker.Magnum和Sahara相关工作,Openstack.Docker社区活跃者. 作者别出心裁地使用Harbor搭建了私有Mirror服务,加速外部Docker镜像的下载.编者对原文做了少量修改. Harbor是VMware公司最近开源的企业级Docker Registry项目(https://github.com/vmw