docker私有仓库

harbor概念

|-----------------------------------------------------------------------------|
| Docker-harbor私有仓库 Docker的核心组件镜像,容器,仓库 仓库:仓库保存镜像 私有,自定义用户的形式登录仓库,拉取或者上传镜像 |
| Harbor:是VMware公司开发的,开源的企业级的dockerregistry项目 帮助用户快速的搭建一个企业级的docker仓库的服务 支持中文 |

Harbor的特性

|---|---------------------------------------------------------------------------|
| 1 | 基于角色进行控制,用户和仓库都是基于项目进行的,用户在每个项目中可以拥有不同的权限 |
| 2 | 基于镜像在不同的harbor实例之间进行复制 |
| 3 | Harbor自带一个数据库(AD/LDAP(类似于数据库中的表)),用于对已存在的用户进行认证和管理 |
| 4 | 镜像删除和垃圾回收,仓库中的镜像可以被删除(基于权限控制),也可以回收镜像占用的空间 |
| 5 | 图形化界面,用户可以直接通过浏览器对镜像仓库进行管理 |
| 6 | 审计管理,所有对镜像仓库的操作都可以被记录溯源 |
| 7 | 支持API操作:API的程序接口,端口:主机和主机之间的通信,API是应用和应用直接的接口,管理员可以基于API调用接口,和更多的其他程序进行集成 |

Harbor的组件

|---------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| proxy | 安装完harbor之后,会自动生产一个nginx的容器,而且会自动对外映射,默认80端口,nginx容器作为前端代理,在harbor整个组件当中,registry,UI,TOKEN,都在nginx的反向代理后面,通过nginx的代理可以把请求转发到后端不同的应用 |
| registry | 负责存储镜像,所有的docker pull/push的命令都由其负责处理,这其中涉及到不同用户的权限,要对用户进行访问控制,不同的用户对dokcer镜像有不同的读写权限,Registry每次都会指向一个不同的Token,强制用户每次的pull/push,都必须带一个合法的token(公钥对),Registry会通过公钥对,进行解密验证,身份合法才能指定操作 |
| CORE services | Harbor的核心功能:提供3个服务 |
| | 1. UI:提供图形化界面 2. Webhook:仓库上所有镜像的变化(指增删改查),都会传送给webhook,用以显示在UI界面上 3. Token:签发每一次push和pull的公钥对,用来和仓库之间进行权限认证 4. Database:harbor-db,为核心组件core services 提供数据库存储服务,用户权限,审计日志 docker镜像的分组和项目信息 5. Job service:主要用于镜像的复制,本地镜像可以同步到远程harbor上 6. Logcollector(harbor-log):用以日志收集工具 |
| | Harbor都是基于docker容器化部署的,docker-compose一键编排,安装。 |

安装docker-harbor

bash 复制代码
[root@docker1 ~]# systemctl stop firewalld.service
[root@docker1 ~]# setenforce 0
[root@docker1 opt]# ls
compose-nginx  harbor-offline-installer-v2.8.1.tgz rh
[root@docker1 opt]# tar -xf harbor-offline-installer-v2.8.1.tgz -C /usr/local
[root@docker1 opt]# cd /usr/local/harbor/
[root@docker1 harbor]# ls
common.sh  harbor.v2.8.1.tar.gz  harbor.yml.tmpl  install.sh  LICENSE  prepare
[root@docker1 harbor]# cp harbor.yml.tmpl harbor.yml
[root@docker1 harbor]# vim harbor.yml

 5 hostname: 192.168.233.12
#要么使用本机ip地址,要么使用本机主机名(不能是localhost)
 34 harbor_admin_password: 123456
#密码自定义
[root@docker1 harbor]# ./prepare
#编译环境,https:docker-harbor默认的通信协议是https,如果没有注释可能会报错
[root@docker1 harbor]# ./install.sh
#报错重启一下docker
[root@docker1 harbor]# docker-compose ps

访问192.168.233.11

Harbor DB的默认密码

可同时打开数据库的线程

镜像默认保存的地址

镜像复制限制的线程为10个

https:docker-harbor默认的通信协议是https,需要注释掉

本地主机往上传

bash 复制代码
[root@docker1 harbor]# docker pull nginx:1.22.0
[root@docker1 harbor]# docker tag nginx:1.22.0 127.0.0.1/library/nginx:dn1
#改名,127.0.0.1 本地使用这个ip就足够
[root@docker1 harbor]# docker images
[root@docker1 harbor]# docker login -u admin -p 123456 http://127.0.0.1
#先登录后再上传 http://127.0.0.1 为镜像地址这里指本地
[root@docker1 harbor]# docker push 127.0.0.1/library/nginx:dn1
回到页面刷新后查看

建立私有仓库

创建用户

上传私有仓库

bash 复制代码
[root@docker1 harbor]# docker login -u c1 -p Chen123456 http://127.0.0.1
#先登录
[root@docker1 harbor]# docker tag nginx:1.22.0 127.0.0.1/c1/nginx:c1
#c1指定项目名称
[root@docker1 harbor]# docker push 127.0.0.1/c1/nginx:c1
要先去网页添加用户组成员后再上传

角色权限管理

|-------|------------------|
| 访客 | 只能看,只有读权限 |
| 开发者 | 可以有读写权限,但是没有删除权限 |
| 维护人员 | 读写权限,修改其他配置的权限 |
| 项目管理员 | 对该项目拥有所有权限 |

相关推荐
xuhe28 分钟前
[全流程详细教程]Docker部署ClawBot, 使用GLM4.7, 接入TG Bot实现私人助理. 解决Docker Openclaw Permission Denied问题
linux·docker·ai·github·tldr
Lsir10110_24 分钟前
【Linux】进程信号(下半)
linux·运维·服务器
skywalk816341 分钟前
unbound dns解析出现问题,寻求解决之道
运维·服务器·dns·unbound
酉鬼女又兒42 分钟前
零基础入门Linux指南:每天一个Linux命令_pwd
linux·运维·服务器
云飞云共享云桌面44 分钟前
高性能图形工作站的资源如何共享给10个SolidWorks研发设计用
linux·运维·服务器·前端·网络·数据库·人工智能
skywalk81631 小时前
走近科学:unbound dns域名服务器自己本地解析出现问题,寻求解决之道
运维·服务器·dns·unbound
袁煦丞 cpolar内网穿透实验室1 小时前
远程调试内网 Kafka 不再求运维!cpolar 内网穿透实验室第 791 个成功挑战
运维·分布式·kafka·远程工作·内网穿透·cpolar
星火s漫天1 小时前
第一篇: 使用Docker部署flask项目(Flask + DB 容器化)
数据库·docker·flask
AZ996ZA1 小时前
自学linux的第二十一天【DHCP 服务从入门到实战】
linux·运维·服务器·php
神梦流2 小时前
GE 引擎的非标准数据流处理:稀疏张量与自定义算子在图优化中的语义保持
linux·运维·服务器