docker-harbor私有仓库

docker-harbor私有仓库
docker 镜像 容器 仓库
仓库:保存镜像
私有,自定义用户的形式登录仓库,拉取或者上传镜像。(内部管理的用户)
harbor:是VMware公司开发的,开源的企业级的docker registry项目。
帮助用户快速的搭建一个企业级的docker 仓库的服务。
支持中文。

harbor的特性:

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

harbor的组件:

1、proxy:安装完了harbor之后,他会自动生成一个nginx的容器,自动对外映射,80端口,nginx前端代理,在HARBOr当中registry,UJ,TOKEN,都在nginx的反向代理后面。通过nginx的代理,可以把请求转发到后端不同的应用。
2、Registry:负责存储镜像,docker pull/push的命令都由其负责。用户进行访问控制,不同的用户对docker镜像有不同的读写权限。Resgistry每次都会指向一个不同的Token,强制用户每次的pull/push,都必须带一个合法的token(公钥对),Resgistry会通过公钥对,进行解密验证,身份合法才能指定操作。
3、CORE SERVICES:Harbor的核心功能:提供3个服务:
       1、UI:提供图形化界面。
       2、Webhook:仓库上所有镜像的变化(增删改),都会传送给webhook,以实现在 
       Ul界面上。
       3、Token:签发每一次push和pull的公钥对,用来和仓库之间进行权限认证。

       4、database:harbor-db,为核心core services提供数据库存储服务,用户权限,审计日志                 docker镜像的分组和项目信息。
       5、Job service:主要用于镜像的复制,本地镜像可以同步到远程harbor上
       6、log collector(harbor-log):统一日志收集工具。
 harbor都是基于docker容器化部署的,docker-compose一键编排,安装。

Harbor 部署 

[root@localhost ~]# cd /opt
[root@localhost opt]# rz -E
rz waiting to receive.
[root@localhost opt]# rz -E
rz waiting to receive.
[root@localhost opt]# ls
containerd  docker-compose-linux-x86_64  harbor-offline-installer-v2.8.1.tgz  rh

mv docker-compose-linux-x86_64 docker-compose
mv docker-compose /usr/local/bin/
chmod 777 /usr/local/bin/docker-compose
 docker-compose -v
Docker Compose version v2.18.0

tar -xf harbor-offline-installer-v2.8.1.tgz -C /usr/local
[root@localhost opt]# cd /usr/local/harbor/
[root@localhost harbor]# ls
common.sh  harbor.v2.8.1.tar.gz  harbor.yml.tmpl  install.sh  LICENSE  prepare
[root@localhost harbor]# cp harbor.yml.tmpl harbor.yml
[root@localhost harbor]# vim harbor.yml

--5行--修改,设置为Harbor服务器的IP地址或者域名

hostname = 192.168.73.107

--12~18行未注释的注释

--34行--指定管理员的初始密码,默认的用户名/密码是admin/Harbor12345

harbor_admin_password = Harbor12345

--53镜像保存位置

修改完成

./prepare

./install.sh

cd /usr/local/harbor/
docker-compose ps
 
##以下命令均在在habor的配置目录下运行
docker-compose up -d      #启动
docker-compose stop       #停止
docker-compose restart    #重新启动

在浏览器登录你的host,默认的用户名/密码是admin/Harbor12345

上传镜像到docker-harbor仓库:

docker pull nginx:1.22.0

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

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

docker push 127.0.0.1/library/nginx:test1

创建用户并分配权限

 在 Web 管理界面中单击系统管理 -> 用户管理 -> +用户,
填写用户名为“zhangsan”,邮箱为“zhangsan@kgc.com”,全名为“zhangsan”,密码为“As12345678”,注释为“xx项目角色”(可省略)。
附:用户创建成功后,单击左侧“...”按钮可将上述创建的用户设置为管理员角色或进行删除操作,

添加项目成员

 单击项目 -> myproject-test-> 成员 -> + 成员,填写上述创建的用户 zhangsan 并分配角色为“开发人员”。
附:此时单击左侧“...”按钮仍然可对成员角色进行变更或者删除操作

在客户端上使用普通账户操作镜像 


//删除上述打标签的本地镜像
docker rmi 192.168.73.107/myproject-test/cirros:v2
 
//先退出当前用户,然后使用上述创建的账户 zhangsan 登录
docker logout 192.168.73.107
 
docker login 192.168.73.105

docker login -u zhangsan -p As12345678 http://192.168.73.107
 
//下载和上传镜像进行测试
docker pull 192.168.73.107/myproject-test/cirros:v2
 
docker tag cirros:latest 192.168.73.107/myproject-test/cirros:v3
docker push 192.168.73.107/myproject-test/cirros:v3

移除 Harbor 服务容器同时保留镜像数据/数据库,并进行迁移 


//在Harbor服务器上操作
(1)移除 Harbor 服务容器
cd /usr/local/harbor
docker-compose down -v
 
(2)把项目中的镜像数据进行打包
//持久数据,如镜像,数据库等在宿主机的/data/目录下,日志在宿主机的/var/log/Harbor/目录下
ls /data/registry/docker/registry/v2/repositories/myproject-kgc
cd /data/registry/docker/registry/v2/repositories/myproject-kgc
tar zcvf kgc-registry.tar.gz ./*
 
6. 如需重新部署,需要移除 Harbor 服务容器全部数据
cd /usr/local/harbor
docker-compose down -v
rm -r /data/database
rm -r /data/registry

Harbor的备用机的设置

再次开启一台主机,按照前面的步骤安装一台Harbor服务器 

(1)添加复制对象 

服务端(要复制的主机):登录Harbor管理员

复制管理=》目标=》+目标=》目标填写

输入对方主机的用户名和密码,URL  等待,进行测试连接,如果没问题就可以确定

(2)进行项目的选择复制 

 服务端中:

项目=》点击要复制的项目名=》复制 =》 +复制规则

编写好复制规则,进行测试连接,如果无误,就可以确认

查看备份机中的项目

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2023-12-15 07:08:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-15 07:08:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-15 07:08:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-15 07:08:04       18 阅读

热门阅读

  1. 用python写一段收到邮件会在桌面弹出提醒

    2023-12-15 07:08:04       32 阅读
  2. android从ftp,阿里云,腾讯云下载zip

    2023-12-15 07:08:04       45 阅读
  3. 单元测试二(理论)-云计算2023.12-云南农业大学

    2023-12-15 07:08:04       28 阅读