09. Docker进阶-Harbor

简介

什么是Harbor

Harbor是一个企业级的docker仓库管理工具,且基于Docker部署的开源工具。
Harbor包含权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。

Harbor的功能

  • 基于角色的访问控制(Role Based Access Control)
  • 基于策略的镜像复制(Policy based image replication)
  • 镜像的漏洞扫描(Vulnerability Scanning)
  • AD/LDAP集成(LDAP/AD support)
  • 镜像的删除和空间清理(Image deletion & garbage collection)
  • 友好的管理UI(Graphical user portal)
  • 审计日志(Audit logging)
  • RESTful API
  • 部署简单(Easy deployment)

Harbor的组件

Harbor在架构上主要组件:

  1. harbor-adminserver:harbor系统管理接口,可以修改系统配置以及获取系统信息。
  2. harbor-db:存储项目的元数据、用户、规则、复制策略等信息。
  3. harbor-jobservice:harbor里面主要是为了镜像仓库之前同步使用的。
  4. harbor-log:收集其他harbor的日志信息。rsyslogd
  5. harbor-ui:一个用户界面模块,用来管理registry。主要是前端的页面和后端CURD的接口。
  6. nginx:harbor的一个反向代理组件,代理registry、ui、token等服务。这个代理会转发harbor web和docker client的各种请求到后端服务上。是个nginx。nginx负责流量转发和安全验证,对外提供的流量都是从nginx中转,它将流量分发到后端的ui和正在docker镜像存储的docker registry。
  7. registry:存储docker images的服务,并且提供pull/push服务。harbor需要对image的访问进行访问控制,当client每次进行pull、push的时候,registry都需要client去token服务获取一个可用的token。
  8. redis:存储缓存信息
  9. webhook:当registry中的image状态发生变化的时候去记录更新日志、复制等操作。

网站信息

Harbor官网:https://goharbor.io/
Harbor文档:https://goharbor.io/docs/2.10.0/
Harbor下载:https://github.com/goharbor/harbor/releases

安装

下载Harbor

//下载harbor离线安装包
wget https://github.com/goharbor/harbor/releases/download/v2.8.1/harbor-offline-installer-v2.8.1.tgz
//解压
tar -xf harbor-offline-installer-v2.8.1.tgz -C /usr/local

配置Harbor

cp /usr/local/harbor/harbor.yml.tmpl /usr/local/harbor/harbor.yml

vim /usr/local/harbor/harbor.yml
hostname: 192.168.108.132
http:
  port: 80
harbor_admin_password: Harbor12345
data_volume: /data/harbor/data/

安装Harbor

/usr/local/harbor/install.sh

账号/密码

Harbor的默认账号密码为:admin/Harbor12345

应用

用户管理

创建用户

  • 创建用户

image.png

  • 设置用户

image.png

用户授权

  • 分配权限

选择用户,点击“设置为管理员”
image.png

  • 取消权限

选择用户,点击“取消管理员”
image.png

管理用户

  • 删除用户

选择用户,点击“删除”
image.png

  • 重置密码

选择用户,点击“重置密码”
image.png
设置新密码
image.png

用户注册

  • 允许用户自注册

image.png

项目管理

添加项目

  • 新建项目

image.png

  • 配置项目

image.png
注意:访问级别设置为公开,则表示无需Harbor账号密码即可访问。

分配项目

  • 选择项目

image.png

  • 添加成员

image.png

  • 设置成员

搜索用户,并为其设置角色
image.png

管理项目

  • 删除项目

选择项目,点击“删除”
image.png

  • 添加标签

image.png

  • 设为公开

image.png

  • 镜像扫描

image.png

  • 安全部署

image.png

  • 仓库空间

选择仓库,点击“修改”,然后指定仓库大小,“-1”表示不设限制
image.png
image.png

仓库管理

应用仓库

注意:本地安装的Harbor没有开始HTTPS协议,所以在使用HTTP协议访问时需要加上端口。

  1. 登录需要添加端口
  2. 打标签需要添加端口
  3. 推送镜像需要添加端口
  4. 从仓库拉取镜像需要添加端口

主机登录仓库

  • 编辑
cat > /etc/docker/daemon.json << EOF
{
  "registry-mirrors": [
     "https://11777p0c.mirror.aliyuncs.com",
     "http://192.168.108.128:80"
  ],
  "insecure-registries": ["192.168.108.128:80"],
  "data-root": "/data/docker",
  "dns": [
    "8.8.8.8",
    "114.114.114.114"
  ],
  "log-driver":"json-file",
  "log-opts": {"max-size":"100m"}
}
EOF

systemctl daemon-reload
systemctl restart docker
  • 登录仓库
docker login --username=wangmingqu --password=Whaty@123 http://192.168.108.128:80

推送镜像到操作

  • 登录仓库
docker login --username=wangmingqu --password=Whaty@123 http://192.168.108.128:80
  • 镜像标签
#格式:
docker tag SOURCE_IMAGE[:TAG] 192.168.108.128/project/REPOSITORY[:TAG]
docker tag SOURCE_IMAGE[:TAG] 192.168.108.128[:PORT]/project/REPOSITORY[:TAG]

#举例:
docker tag redis:6.0 192.168.108.128:80/project/redis:6.0
  • 推送镜像
#格式:
docker push 192.168.108.128:80/project/REPOSITORY[:TAG]
docker push 192.168.108.128:80[:PORT]/project/REPOSITORY[:TAG]

#举例
docker push 192.168.108.128:80/project/redis:6.0

从仓库拉取镜像

docker pull 192.168.108.128:80/project/redis@sha256:f7e09e24712bd2d944032fedf94e3a8f9ef44d7b63ea70c149396afc0a9c1abd
  • 15
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值