docker-harbor的私有仓库

目录

harbor的特性

harbor的组件

docker-harbor部署

Docker1

页面访问

​编辑

上传镜像

创建项目

创建用户

给项目创建成员

上传私有仓库

docker2(远程主机上传)

如何实现仓库之间进行同步

docker3

实现远程仓库同步


仓库 保存镜像

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

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镜像有不同的读写权限,,Resgistry每次都会指向一个不同的Token,强制用户每次的pull/push,都必须带一个合法的(公钥对)。Resgistry会通过公钥对,进行解密验证,身份合法才能指定操作

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

复制代码
1、UI:提供图形化界面
2、Webhook	仓库上所有镜像的变化(增删改),都会传给webhook,以实现在UI界面上
3、Token	签发每一次push和pull的公钥对,用来和仓库之间进行权限认证
4、自带database: harbor-db,为核心core service提供数据库存储服务,用户权限,审计日志docker镜像的分组和项目信息
5、Job servic:主要用于镜像的复制,本地镜像可以同步到远程harbor上
6、log collector(harbor-log):统一日志收集工具

harbor都是基于docker容器化部署的,docker-compose一键编排,安装

docker-harbor部署

docker1 安装仓库 (31 docker-ce har-bor docker-compose)

docker2 客户端 (32 docker-ce har-bor docker-compose)

docker3 安装仓库--实现远程同步 (33 docker-ce har-bor docker-compose)

Docker1
复制代码
关闭防火墙和安全机制
把源码包拖到opt目录下

mv docker-compose- docker-compose
mv docker-compose /usr/local/bin
chmod 777 /usr/local/bin/docker-compose

解压源码包
tar -xf  harbor-offline-installer-v2.8.1.tgz  -C /usr/local/
cd /usr/local/harbor

vim harbor.yml
5行
hostname: 20.0.0.31
把https注释掉
#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
34行
harbor_admin_password: 123456

data_volume: /data
保存镜像目录

./perpare
https:docker-harbor	默认通信协议是https加密通信协议

./install.sh
页面访问
复制代码
浏览器访问本机IP地址(20.0.0.31)
账号:admin
密码:123456
上传镜像
复制代码
拉取镜像
docker pull nginx:1.22.0

改标签
docker tag nginx:1.22.0 127.0.0.1/library/nginx:xb1

登录项目
docker login -u admin -p 123456 http:127.0.01
上传
docker push 127.0.0.1/library/nginx:xb1
创建项目
创建用户
给项目创建成员
复制代码
项目管理---> 刚刚创建的项目 ---成员---创建成员

访客	只能看,只有读权限
开发者	可以有读写,但是没有删除权限
维护人员	读写权限,修改其他配置项的权限
项目管理员	对该项目拥有所有权限
上传私有仓库
复制代码
先退出刚刚进入的用户
docker logout
登录用户
docker login -u xiaobu -p Abc123456 http://127.0.0.1
给nginx改标签
 docker tag nginx:1.22.0 127.0.0.1/xbtest/nginx:xb2
上传镜像
[root@docker1 harbor]# docker push  127.0.0.1/xbtest/nginx:xb2 
The push refers to repository [127.0.0.1/xbtest/nginx]
0810d1ac3f2f: Mounted from library/nginx 
a6edfce9a309: Mounted from library/nginx 
eabe89adceee: Mounted from library/nginx 
89dade9c1793: Mounted from library/nginx 
b9361c275c5d: Mounted from library/nginx 
fe7b1e9bf792: Mounted from library/nginx 
xb2: digest: sha256:b3a676a9145dc005062d5e79b92d90574fb3bf2396f4913dc1732f9065f55c4b size: 1570

页面查看

docker2(远程主机上传)
复制代码
docker login -u guoqi -p Guoqi666 http://20.0.0.31
无法登录修改

vim /usr/lib/systemd/ system/docker. service

13行
ExecStart=/usr/bin/dockerd --insecure-registry 20.0.0.31

systemctl daemon-reload
systemctl restart docker.service

docker login -u xiaobu -p Abc123456 http://20.0.0.31

docker pull logstash

docker tag logstash:latest 20.0.0.31/xbtest/logstash:xb2
docker push 20.0.0.31/xbtest/logstash:xb2

页面查看

如何实现仓库之间进行同步

docker3

复制代码
harbor同docker1操作

解压源码包
tar -xf  harbor-offline-installer-v2.8.1.tgz  -C /usr/local/
cd /usr/local/harbor

vim harbor.yml
5行
hostname: 20.0.0.33
把https注释掉
#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
34行
harbor_admin_password: 12345

data_volume: /data
保存镜像目录

./perpare
https:docker-harbor	默认通信协议是https加密通信协议

./install.sh

页面登录

复制代码
网页访问20.0.0.33
账号    admin
密码    12345
实现远程仓库同步
复制代码
页面-->仓库管理---创建目标
页面--->复制管理-->创建规则

复制管理-->勾对上刚刚创建的规则-->复制

相关推荐
CS_浮鱼12 小时前
【Linux】进程概念
linux·运维·服务器
青柚~13 小时前
【鲲鹏服务器麒麟系统arm架构部署docker】
服务器·arm开发·docker·架构
人工智能训练13 小时前
Ubuntu中如何进入root用户
linux·运维·服务器·人工智能·ubuntu·ai编程·root
tianshiyeben13 小时前
WGCLOUD监控系统使用指南 - 告警消息整理完整版
linux·运维·服务器·系统安全·zabbix
喜欢你,还有大家13 小时前
Docker-存储
运维·docker·容器
暂时先用这个名字13 小时前
信创时代下,PHP/MySQL应用的平滑迁移与运维管理升级(AI整理)
运维·mysql·php·信创·国产化·国产·迁移
Lucis__14 小时前
STL设计模式探秘:容器适配器&仿函数
c++·容器·stl·仿函数
CS_浮鱼14 小时前
【Linux】进程控制
linux·运维·网络
人工智能训练15 小时前
Docker中容器的备份方法和步骤
linux·运维·人工智能·ubuntu·docker·容器·nvidia
bing.shao15 小时前
Goer-Docker系列-1-管理工具
docker·容器·eureka