Docker Harbor | 私有仓库 | 用户登录 |用户创建

这篇具有很好参考价值的文章主要介绍了Docker Harbor | 私有仓库 | 用户登录 |用户创建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Docker Harbor 概述

1.Harbor 简介
Docker Harbor 能够提供可视化的 Web 管理界面,可以方便管理 Docker 镜像,而且提供了多个项目的镜像权限管理及控制功能(包括统计信息,比如镜像被下载了多少次,什么时候上传得)

Harbor 是 VMware 公司开源的企业级 Docker Registry 项目

Registry:
1.Docker官方提供了Docker Hub来维护管理所有的镜像,只是对于免费用户而言,只能创建一个私有仓库,付费用户才能拥有更多私有仓库的权限
2.对此官方开源了Docker Registry的源代码,我们可以通过它在局域网内部搭建私有的镜像注册中心(私有仓库)

2.Harbor 的优势
基于角色控制:有管理员与普通用户,可赋权普通用户,比如只能上传和下载,可根据项目来进行操作和管理

基于镜像的复制策略:也与权限相关,比如有只一些用户与组才能对此项目进行相对应的操作

支持 LDAP/AD:域控制,比如南京去下载北京 harbor 私有仓库的镜像,两端打上局域网的地址,连接在一块,数据信息的传输通过一条隧道,会通过两层加密,第一层为隧道加密,第二层为数据加密,安全可靠

图像删除和垃圾收集:即回收站机制

图形 UI:具有统计功能,比如访问量与镜像下载热度

审计:日志,这里意义不大,主要还是借助于 ELK

RESTful API:定义 Web 语言规范的格式,方便调用 Harbor 的接口,也便于二次开发

二、Harbor 的核心组件

1.Proxy
通过一个前置的反向代理统一接收浏览器、Docker 客户端的请
求,并将请求转发给后端不同的服务
这是一个反向代理组件

2.Registry
负责储存 Docker 镜像
处理 docker push/pull 命令来上传和下载

3.Core services
1.Harbor 的核心功能,包括UI、webhook、 token 服务
2.webhook:网站的一些服务功能
3.token:令牌,提供身份验证服务

4.Database
为 core services 提供数据库服务
数据库记录镜像的元信息及用户的身份信息

5.Log collector
负责收集其他组件的日志,以供然后进行分析
健康检查等

Docker Harbor | 私有仓库 | 用户登录 |用户创建

所有的请求或人为的操作都会首先交给 Proxy(反向代理)

Proxy 会先将请求转发给后端 Core services,Core services 中包含 UI、token(身份验证服务)、webhook(网站的一些服务功能)

转发给 Registry(镜像存储),若需要下载镜像等权限操作,需要通过 Core services 中的 token 令牌的身份验证服务才行

每一次下载和上传都会产生操作记录,生成到日志,保存至 Database 中

Database 记录保存镜像的元信息及用户与组的身份信息,通过验证授权才能允许相关操作

四、Harbor 构建 Docker 私有仓库实战

4.1 搭建本地私有仓库

首先下载 registry 镜像
docker pull registry

#在 daemon.json 文件中添加私有镜像仓库地址
vim /etc/docker/daemon.json
{
  "insecure-registries": ["192.168.10.50:5000"],						#添加,注意用逗号结尾
  "registry-mirrors": ["https://ae3f5qei.mirror.aliyuncs.com"]
}

systemctl restart docker.service

#运行 registry 容器
docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
#查看创建的仓库
docker ps  -a 


-itd:在容器中打开一个伪终端进行交互操作,并在后台运行
-v:把宿主机的/data/registry目录绑定到容器/var/lib/registry目录(这个目录是registry容器中存放镜像文件的目录),来实现数据的持久化;
-p:映射端口;访问宿主机的5000端口就访问到registry容器的服务了
--restart=always:这是重启的策略,在容器退出时总是重启容器
--name registry:创建容器命名为registry
registry:latest:这个是刚才pull下来的镜像

Docker容器的重启策略如下:
no:默认策略,在容器退出时不重启容器
on-failure:在容器非正常退出时(退出状态非0),才会重启容器
on-failure:3 :在容器非正常退出时重启容器,最多重启3次
always:在容器退出时总是重启容器
unless-stopped:在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器

Docker Harbor | 私有仓库 | 用户登录 |用户创建
Docker Harbor | 私有仓库 | 用户登录 |用户创建

Docker Harbor | 私有仓库 | 用户登录 |用户创建

#为镜像打标签
docker tag centos:7 192.168.10.50:5000/centos:v1

#上传到私有仓库
docker push 192.168.10.50:5000/centos:v1

#列出私有仓库的所有镜像
curl http://192.168.10.50:5000/v2/_catalog

#出私有仓库的 centos 镜像有哪些tag
curl http://192.168.10.50:5000/v2/centos/tags/list

#先删除原有的 centos 的镜像,再测试私有仓库下载
docker rmi 192.168.10.50:5000/centos:v1

docker pull 192.168.10.50:5000/centos:v1

Docker Harbor | 私有仓库 | 用户登录 |用户创建
Docker Harbor | 私有仓库 | 用户登录 |用户创建

4.2 部署 Docker-Compose 服务

//下载或者上传 Docker-Compose
curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

docker-compose --version


2. 部署 Harbor 服务
(1)下载或上传 Harbor 安装程序
wget http://harbor.orientsoft.cn/harbor-1.2.2/harbor-offline-installer-v1.2.2.tgz

tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/


(2)修改harbor安装的配置文件
关于 Harbor.cfg 配置文件中有两类参数:所需参数和可选参数
1、所需参数:这些参数需要在配置文件 Harbor.cfg 中设置。如果用户更新它们并运行 install.sh 脚本重新安装 Harbor, 参数将生效。
2、可选参数:这些参数对于更新是可选的,即用户可以将其保留为默认值,并在启动 Harbor 后在 Web UI 上进行更新。如果进入 Harbor.cfg,只会在第一次启动 Harbor 时生效,随后对这些参数的更新,Harbor.cfg 将被忽略。

vim /usr/local/harbor/harbor.cfg
--5行--修改,设置为Harbor服务器的IP地址或者域名
hostname = 192.168.10.50
--59行--指定管理员的初始密码,默认的用户名/密码是admin/Harbor12345
harbor_admin_password = Harbor12345

Docker Harbor | 私有仓库 | 用户登录 |用户创建

Docker Harbor | 私有仓库 | 用户登录 |用户创建
Docker Harbor | 私有仓库 | 用户登录 |用户创建

4.3 启动harbor验证

启动 Harbor
cd /usr/local/harbor/
在配置好了 harbor.cfg 之后,执行 ./prepare 命令,为 harbor 启动的容器生成一些必要的文件(环境)
再执行命令 ./install.sh 以 pull 镜像并启动容器

4. 查看 Harbor 启动镜像
cd /usr/local/harbor/
docker-compose ps

5. 创建一个新项目
(1)浏览器访问:http://192.168.10.50 登录 Harbor WEB UI 界面,默认的管理员用户名和密码是 admin/Harbor12345

(2)输入用户名和密码登录界面后可以创建一个新项目。点击“+项目”按钮

(3)填写项目名称为“myproject-kgc”,点击“确定”按钮,创建新项目

(4)此时可使用 Docker 命令在本地通过 127.0.0.1 来登录和推送镜像。默认情况下,Registry 服务器在端口 80 上侦听。
//登录 Harbor
docker login -u admin -p Harbor12345 http://127.0.0.1

Docker Harbor | 私有仓库 | 用户登录 |用户创建
Docker Harbor | 私有仓库 | 用户登录 |用户创建
Docker Harbor | 私有仓库 | 用户登录 |用户创建
Docker Harbor | 私有仓库 | 用户登录 |用户创建

将镜像打标签
格式:docker tag 镜像:标签  仓库IP/项目名称/镜像名:标签
docker tag nginx:latest 127.0.0.1/myproject-kgc/nginx:v1

//上传镜像到 Harbor
docker push 127.0.0.1/myproject-kgc/nginx:v1

在 Harbor 界面 myproject-kgc 目录下可看见此镜像及相关信息

Docker Harbor | 私有仓库 | 用户登录 |用户创建
Docker Harbor | 私有仓库 | 用户登录 |用户创建
Docker Harbor | 私有仓库 | 用户登录 |用户创建

4.4 在其他客户端上传镜像

以上操作都是在 Harbor 服务器本地操作。如果其他客户端登录到 Harbor,就会报如下错误。出现这问题的原因为Docker Registry 交互默认使用的是 HTTPS,但是搭建私有镜像默认使用的是 HTTP 服务,所以与私有镜像交互时出现以下错误。

docker login -u admin -p Harbor12345 http://192.168.10.50
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get https://192.168.10.50/v2/: dial tcp 192.168.10.50:443: connect: connection refused

(1)在 Docker 客户端配置操作
//解决办法是:在 Docker server 启动的时候,增加启动参数,默认使用 HTTP 访问。
vim /usr/lib/systemd/system/docker.service
--13行--修改
ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 192.168.10.50 --containerd=/run/containerd/containerd.sock
或
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.10.50

//重启 Docker,再次登录
systemctl daemon-reload
systemctl restart docker

//再次登录 Harbor
docker login -u admin -p Harbor12345 http://192.168.10.50
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Login Succeeded
//将自动保存凭据到/root/.docker/config.json,下次登录时可直接使用凭据登录 Harbor

//下载镜像进行测试
docker pull 192.168.10.50/myproject-kgc/nginx:v1

//上传镜像进行测试
docker pull cirros
docker tag cirros:latest 192.168.10.50/myproject-kgc/cirros:v2
docker push 192.168.10.50/myproject-kgc/cirros:v2

(2)刷新 ![请添加图片描述](https://img-blog.csdnimg.cn/7009298ab42040b3a6f0d9a34c03171e.png)
Harbor 的 Web 管理界面进行查看,会发现 myproject-kgc 项目里面有两个镜像

Docker Harbor | 私有仓库 | 用户登录 |用户创建
Docker Harbor | 私有仓库 | 用户登录 |用户创建
Docker Harbor | 私有仓库 | 用户登录 |用户创建

4.5 维护管理Harbor

1. 通过 Harbor Web 创建项目
在 Harbor 仓库中,任何镜像在被 push 到 regsitry 之前都必须有一个自己所属的项目。
单击“+项目”,填写项目名称,项目级别若设置为"私有",则不勾选。如果设置为公共仓库,则所有人对此项目下的镜像拥有读权限,命令行中不需要执行"Docker login"即可下载镜像,镜像操作与 Docker Hub 一致。

2. 创建 Harbor 用户
(1)创建用户并分配权限
在 Web 管理界面中单击系统管理 -> 用户管理 -> +用户,
填写用户名为“boa”,邮箱为“704397225@qq.comm”,全名为“boa”,密码为“Abc12345”,注释为“管理员”(可省略)。
附:用户创建成功后,单击左侧“...”按钮可将上述创建的用户设置为管理员角色或进行删除操作,本例不作任何设置。

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

(3)在客户端上使用普通账户操作镜像
//删除上述打标签的本地镜像
docker rmi 192.168.10.50/myproject-kgc/cirros:v2

//先退出当前用户,然后使用上述创建的账户boa 登录
docker logout 192.168.10.50

docker login 192.168.10.50
或
docker login -u boa -p Abc123456 http://192.168.10.50

//下载和上传镜像进行测试
docker pull 192.168.10.50/myproject-kgc/cirros:v2

docker tag cirros:latest 192.168.10.50/myproject-kgc/cirros:v3
docker push 192.168.10.50/myproject-kgc/cirros:v3

3. 查看日志
Web 界面日志,操作日志按时间顺序记录用户相关操作

4. 修改 Harbor.cfg 配置文件
要更改 Harbor的配置文件中的可选参数时,请先停止现有的 Harbor实例并更新 Harbor.cfg;然后运行 prepare 脚本来填充配置; 最后重新创建并启动 Harbor 的实例。

使用 docker-compose 管理 Harbor 时,必须在与 docker-compose.yml 相同的目录中运行。
cd /usr/local/harbor
docker-compose down -v

Docker Harbor | 私有仓库 | 用户登录 |用户创建
Docker Harbor | 私有仓库 | 用户登录 |用户创建
Docker Harbor | 私有仓库 | 用户登录 |用户创建
Docker Harbor | 私有仓库 | 用户登录 |用户创建
Docker Harbor | 私有仓库 | 用户登录 |用户创建文章来源地址https://www.toymoban.com/news/detail-425617.html

到了这里,关于Docker Harbor | 私有仓库 | 用户登录 |用户创建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker 私有仓库 harbor 搭建

    🎈 作者: Linux猿 🎈 简介: CSDN博客专家🏆,华为云享专家🏆,Linux、C/C++、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊! 🎈 欢迎小伙伴们点赞👍、收藏⭐、留言💬 目录 一、实验环境 二、安装 harbor  2.1 安装 docker 和 docker-compose 2.2 安装 harbo

    2024年02月16日
    浏览(34)
  • 7-Docker私有仓库harbor私有镜像上传配置

    1.编辑/etc/docker/daemon.json文件,修改容器仓库配置,并保存 命令: vim /etc/docker/daemon.json 更新前 更新后 2.重启docker及Harbor 命令: cd /usr/local/harbor docker-compose -f docker-compose.yml down -v docker-compose ps -a systemctl stop docker systemctl status docker systemctl start docker systemctl status docker docker-comp

    2024年01月23日
    浏览(43)
  • Docker-harbor私有仓库

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

    2024年02月04日
    浏览(28)
  • Docker--harbor私有仓库部署与管理

    ------------------------------------ Harbor 简介 ------------------------------------ (1)什么是Harbor Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。 Harbor以 Docker 公司开源的 Registry 为基础,提供了图形管理 UI 、基于角色的访问

    2024年02月08日
    浏览(35)
  • Docker registry镜像仓库,私有仓库及harbor管理详解

    目录 registry镜像仓库概述 Docker 镜像仓库(Docker Registry): registry 容器: 私有仓库概述 搭建本地私有仓库示例 Harbor概述 harbor架构 详解构成 Harbor由容器构成 Harbor部署示例 环境准备 部署Docker-Compose服务 部署 Harbor 服务 启动Harbor 查看 Harbor 启动镜像 创建一个新项目 在其他客

    2024年01月18日
    浏览(34)
  • Docker进阶:使用Docker部署Harbor私有镜像仓库

    💖The Begin💖点点关注,收藏不迷路💖 Harbor是一个开源的企业级Docker Registry服务器,提供了安全的镜像管理功能,支持用户和角色的管理、访问控制、以及活动审计等特性。通过搭建Harbor,我们可以方便地管理和共享Docker镜像,适用于企业内部的应用部署和开发团队的协作。

    2024年04月17日
    浏览(28)
  • Docker harbor私有仓库部与管理

    目录 搭建本地私有仓库 Docker容器的重启策略 Harbor 简介 什么是Harbor Harbor的特性 Harbor的构成 Docker harbor私有仓库部署 Harbor.cfg配置文件中的参数 维护管理Harbor  总结 运行 registry 容器  -itd:在容器中打开一个伪终端进行交互操作,并在后台运行 -v:把宿主机的/data/registry目录

    2024年02月08日
    浏览(29)
  • 【云原生】Docker的私有仓库部署——Harbor

     关于Docker的仓库分为私有库和公有仓库,共有仓库只要在官方注册用户,登录即可使用。但对于仓库的使用,企业还是会有自己的专属镜像,所以私有库的搭建也是很有必要的存在。 对于原生的仓库,Docker提供了Registry,它能帮助我们组建属于自己的私有库,但是缺点也比

    2024年02月09日
    浏览(25)
  • Docker harbor 私有仓库的部署和管理

    目录 一、什么是Harbor 二、Harbor的特性 三、Harbor的构成 四、部署配置Docker Harbor 1. 首先需要安装 Docker-Compose 服务 2.部署 Harbor 服务 3.使用harbor仓库  (1)项目管理  (2)用户管理         Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个

    2024年02月10日
    浏览(22)
  • Docker--harbor Docker--registry 私有仓库部署与管理

    拉取 registry 镜像 开启registries容器 添加私有仓库地址 使用配置文件 /etc/docker/daemon.json(没有时新建该文件)添加私有仓库地址 (在任何需要推送以及拉去镜像的docker宿主机上) 重新加载Docker守护程序  更改tag并上传 更改tag 推送到私有仓库 浏览器访问,查看存储的镜像 

    2024年02月15日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包