Docker-harbor私有仓库

Docker的核心:镜像、容器、仓库

仓库:保存镜像

私有:自定义用户的形式登录仓库,拉取或者上传镜像(内部管理的用户)

harbor是什么?

harbor是由VMware公司开发的,开源的企业级的 docker registry项目。帮助用户快速搭建一个企业级的Docker仓库的服务。

支持中文

harbor的特性

1、 基于角色进行控制,用户和仓库都是基于项目进行的,用户在每个项目中拥有不同的权限。

2、 可以基于镜像在不同的harbor实例之间进行复制。

3、 harbor自带一个数据库,AD/LDAP(类似于数据库中的表)用于对已存在的用户进行认证和管理。

4、 镜像删除和垃圾回收,仓库中的镜像可以被删除(基于权限控制),也可以回收镜像占用的空间。

5、 图形化界面,用户可以直接通过浏览器来对镜像仓库进行管理

6、 审计管理,所有的对镜像仓库的操作都可以被记录溯源

7、 支持API操作,API的程序接口,端口:主机和主机之间的通信。API是应用和应用直接的接口。管理员可以基于API调用接口和更多的其他程序进行集成

harbor的组件

1、 proxy:安装完成harbor后,会自动生成一个nginx容器,自动对外映射80端口,nginx起前端代理的作用。在harbor当中registry、UI、TOKEN,都在nginx的反向代理后面。通过nginx的代理可以把请求转发到后端不同的应用。

2、 Registry:负责存储镜像,所有的docker pull/push的命令都由其负责。用户进行访问控制,不同的用户对docker镜像有不同的读写权限。Registry每次都会指向一个不同的Token。强制用户每次的pull/push,都必须带一个合法的token(公钥对)

Resgistry会通过公钥对,进行解密验证,身份合法才能指定操作。

3、 CORE SERVICES:harbor的核心功能,提供3个服务:

  1. UI:提供图形化界面

  2. Webhook:仓库上所有镜像的变化(增删改),都会传给webhook,显示在UI界面上

  3. Token:签发每一次pull和push的公钥对,用来和仓库之间进行权限认证。

  4. database:harbor-db,为核心core services提供数据库存储服务,用户权限,审计日志 docker镜像的分组和项目信息

  5. job service:主要用于镜像复制,本地镜像可以同步到远程harbor上

  6. log collector(harbor-log):统一日志收集工具

docker-harbor搭建

实验准备

bash 复制代码
docker1  20.0.0.41  安装仓库  docker-ce harbor docker-compose
docker2  20.0.0.42  客户端  docker-compose
docker3  20.0.0.43  安装仓库---实现远程同步  docker-ce harbor docker-compose

docker1安装组件
安装配置docker-compose
mv docker-compose-linux-x86_64 docker-compose
mv docker-compose /usr/local/bin/
chmod 777 /usr/local/bin/docker-compose 
docker-compose -v
安装配置harbor
tar -xf harbor-offline-installer-v2.8.1.tgz -C /usr/local/
cd /usr/local/harbor/
cp 
vim harbor.yml
hostname: 20.0.0.41
---34行---
harbor_admin_password: 123456
data_volume: /data
#镜像的保存位置
开始编译harbor
./prepare
#编译环境
https:docker-harbor默认的通信西医是https加密通信协议
vim harbor.yml
#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
#注释掉https协议
./install.sh
#开始安装
安装完成后登录页面测试20.0.0.41
用户名:admin
密码:123456

新建项目:

-1表示不做限制

创建用户:

给用户添加权限

角色:

访客:只能看,只有读权限

开发者:有读写权限。但是没有删除权限

维护人员,读写权限,修改其他配置项的权限

项目管理员:对该项目有所有权限

远程登录

到docker2进行操作

bash 复制代码
docker2
vim /usr/lib/systemd/system/docker.service
---13---
--insecure-registry 20.0.0.41
systemctl daemo-reload
systemctl restart docker
docker login -u zyg -p Yuanye824315 http://20.0.0.41
#远程登录41
docker pull logstash
docker tag logstash:latest 20.0.0.41/zygtest/logstash:zyg1
docker push 20.0.0.41/zygtest/logstash:zyg1
#docker push docke1的IP/库的名称/标签

实现镜像同步

bash 复制代码
docker3
安装harbor
安装配置docker-compose
mv docker-compose-linux-x86_64 docker-compose
mv docker-compose /usr/local/bin/
chmod 777 /usr/local/bin/docker-compose 
docker-compose -v
安装配置harbor
tar -xf harbor-offline-installer-v2.8.1.tgz -C /usr/local/
cd /usr/local/harbor/
cp harbor.yml.tmpl harbor.yml
vim harbor.yml
hostname: 20.0.0.41
---34行---
harbor_admin_password: 123456
data_volume: /data
#镜像的保存位置
开始编译harbor
./prepare
#编译环境
https:docker-harbor默认的通信西医是https加密通信协议
vim harbor.yml
#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
#注释掉https协议
./install.sh
#开始安装
#如果需要修改harbor配置文件重新./install.sh在执行一次即可

进入页面:

仓库管理新建目标

目标url:http://你的IP

复制管理新建规则

如果不选则拉取所有

复制成功:

实验完成

相关推荐
代码方舟12 小时前
零信任架构实战:基于天远车辆过户详版查询构建自动化车辆估值网关
运维·人工智能·架构·自动化
BlueAsia_Lab13 小时前
Wi‑Fi 认证:企业办理需要准备哪些资料?
运维·服务器·网络
Mortalbreeze13 小时前
深入理解 Linux IO 模型(一):阻塞 IO、非阻塞 IO 与信号驱动 IO
linux·运维·服务器
D_codingXuChu14 小时前
2026年物联网应用开发服务商选型指南|从设备接入、数据处理、业务联动到长期运维,拆解项目落地中的工程实践与可验证方法,帮助企业判断供应商真实交付能力
运维·物联网·开发经验·企业服务
2301_7807896614 小时前
CDN提供商常用的DDoS缓解技术与策略
linux·运维·服务器·人工智能·架构
进击的雷神14 小时前
网站 SEO 功能怎么测:从手工检查到自动化脚本的实战思路
运维·爬虫·自动化·官网seo·收录
Kismet_nvi14 小时前
Python运维自动化核心模块
运维·python·自动化
夏炳辉.14 小时前
Rocky Linux 8 从零安装 psql(PostgreSQL 客户端)
linux·运维·postgresql
姚不倒14 小时前
Nginx 核心架构:Master-Worker、epoll、热重载深度解析
运维·nginx·架构
ZEB110614 小时前
泰瑞机器7200吨超大型二板式注塑机正式交付 助力大口径钢塑复合管件制造突破
运维·制造