Docker-harbor私有仓库

2023-12-24 17:32:53

docker 镜像 容器 仓库

仓库:保存镜像

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

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,都必须带一个合法的token(公钥对),Resgistry会通过公钥对,进行解密雅正,身份合法才能指定操作。
  3. CORE SERVICES:Harbor的核心功能:提供3个服务:
  1. UI:提供图形化界面。
  2. Webhock:仓库上所有镜像的变化(增删改),都会传送给webhock,以实现在UI界面上。
  3. Token:签发每一次push和pull的公钥对,用来和仓库之间进行权限认证。
  4. database:harbor-db,为核心core services提供数据库存储服务,用户权限,审计日志docker镜像的分组和项目信息。
  5. job service:主要用于镜像的复制,本地镜像可以同步到远程harbor上
  6. log collector(harbor-log):统一日志收集工具。

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

docker1 ?安装仓库 ????????????????20.0.0.60 ?

docker2 ?客户端 ??????????????????20.0.0.61

docker3 ?安装仓库-----实现远程同步 ?20.0.0.62

docker1

把docker-compose和harbor两个安装包拖进来

安装docker-compose和harbor

cd /opt

mv docker-compose-linux-x86_64 docker-compose

mv docker-compose /usr/local/bin

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

docker-compose -v

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

https:docker-harbor默认的通信协议是https加密通信协议。

./prepare

#编译环境

./install.sh

#开始安装

到浏览器登入20.0.0.60

账号:admin

密码:123456 ??配置文件harbor.yml第34行

获取镜像

docker pull nginx:1.22.0

添加新标签

docker tag nginx:1.22.0 127.0.0.1/library/nginx:dym1

登入

docker login -u admin -p 123456 http://127.0.0.1

上传

docker push 127.0.0.1/library/nginx:dym1

进入浏览器查看

用新用户往私有仓库上上传镜像

远程登录

docker login -u dym -p Dym123456 http://127.0.0.1

docker tag nginx:1.22.0 127.0.0.1/dymtest/nginx:dym1

到浏览器操作

角色:

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

开发者:可以有读写权限,但是没有删除权限

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

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

再返回虚拟机操作

docker push 127.0.0.1/dymtest/nginx:dym1

Docker2服务器

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

systemctl daemon-reload

systemctl restart docker

docker login -u dym -p Dym123456 http://20.0.0.60

docker pull logstash

docker tag logstash:latest 20.0.0.60/dymtest/logstash:dym1

docker push 20.0.0.60/dymtest/logstash:dym1

镜像所在目录

cd /data/registry/docker/registry/v2/repositories/

仓库之间进行同步

Docker3仓库同步docker2仓库里的项目

Docker3服务器

安装docker-compose和harbor

cd /opt

mv docker-compose-linux-x86_64 docker-compose

mv docker-compose /usr/local/bin

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

docker-compose -v

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

./prepare

./install.sh

其他默认选项

复制所有项目

Docker2服务器

Docker3服务器

文章来源:https://blog.csdn.net/DDYYmmm/article/details/135183733
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。