首页 > 其他分享 >docker私有仓库harbor安装与使用

docker私有仓库harbor安装与使用

时间:2024-09-20 22:21:03浏览次数:3  
标签:Web compose harbor 私有 镜像 docker Harbor

Harbor安装与使用

Harbor(英文单词:港湾)简介:

主要功能和特点:

  1. 基于角色的访问控制(RBAC):可以为不同的用户和用户组分配不同的权限,增强了安全性和管理的灵活性
  2. 镜像复制:支持在不同的harbor实例之间复制镜像,方便在多个数据中心或环境中分发镜像
  3. 图形化用户界面(UI):提供了直观地Web界面,便于管理镜像仓库、项目、用户等
  4. 审计日志:记录了对镜像仓库的各种操作,有助于追踪和审查活动
  5. 垃圾回收:可以清理不再使用的镜像,节省存储空间

学习Harbor的应用场景

(1)像Docker Hub、阿里云这样的公共镜像仓库有的时候用起来不太方便,Docker Hub网速太慢,阿里云需要花钱买主机

(2)涉及内部资源的保密性,有的机构不太可能将镜像提供给公网,因此需要创建一个基于内部项目镜像,构造本地私人仓库供给团队使用

Registry与harbor仓库的优势:

Harbor和Registry都是Docker的镜像仓库,但是Harbor作为更多企业的选择,是因为相比较于Registry来说,它具有更多的优势:

1.提供分层传输机制

Docker镜像是分层的,而如果每次传输都使用全量文件(所以用ftp的方式并不适合),显然不经济,必须提供识别分层传输的机制,以层的UUID为标识,确定传输的对象

2.提供Web界面,优化用户体验

只用镜像的名字来进行上传下载显然很不方便,需要一个用户界面可以支持登录、搜索功能,包括区分公有、私有镜像

3.支持水平扩展集群

当有用户对镜像的上传下载操作集中在某服务器,需要对相应的访问压力作分解

4.良好的安全机制

企业中的开发团队有很多不同的职位,对于不同的职位人员,分配不同的权限,具有更好的安全性

5.Harbor提供基于角色的访问控制机制,并通过项目对镜像进行组织和访问权限的控制

5.1安装docker-compose

采用离线下载https://github.com/docker/compose/release下的docker-compose-linux-x86_64

将其执行文件改名放到/usr/local/bin下

通过检查版本来验证docker-compose是否正确安装

5.2安装harbor

下载版本压缩包

https://github.com/goharbor/harbor/releases/download/v2.9.4/harbor-offline-installer-v2.9.4.tg

解压安装包

更改文件名

Harbor.yml文件配置内容

测试暂时使用本机ip

加载重新配置后重启Docker

启动成功后进入harbor安装目录执行启动命令

执行./install.sh

5.3错误解析

(1)关闭防火墙:systemctl stop firewalld

                 Setenforce 0

(2)修改harbor参数文件

将https段的内容全部注释,这里不使用https访问

执行./install.sh出现如下错误

(3)解决容器名重复现象

利用docker rm 容器id 删除容器

再次执行./install.sh命令

看到successfully证明执行成功

查看harbor启动镜像

5.4访问私有仓库

用户名admin

密码Harbor12345

根据配置文件/harbor/harbor.yml内容得出:

默认项目library,点击右上角的推送命令,可以看见各种方式的推送命令

Docker推送命令

5.5使用docker上传镜像到Harbor

(1)使用docker进行登录和推送

在推送镜像之前要做一次登录

(2)下载镜像进行测试

(3)将镜像打标签

(4)上传镜像到Harbor

(5)在Web-Harbor界面查看

5.6客户端上传镜像

以上操作都是在Harbor服务器本地操作。如果其他客户端上传镜像到Harbor,就会报错

原因:docker registry交互默认使用的是HTTPS,但在搭建私有镜像默认使用的是HTTP.

解决办法:

在docker Server启动的时候,增加启动参数,默认使用HTTP访问

再次登录Harbor

下载镜像进行测试

将镜像打标签

上传镜像:

查看harbor的Web界面,项目里面有两个镜像

5.7Harbor日常操作管理

(1)通过Harbor Web创建项目

单击新建项目,填写项目名称。本案例项目级别为“公有”,则所有对此项目下的镜像拥有读权限,命令行中不需要执行“docker login”即可下载镜像

(2)创建Harbor用户

创建用户并分配权限

(3)在客户端上使用普通账号操作镜像

# docker pull mysql5.7

(4)删除上述打标签的本地镜像

(5)先退出当前用户,然后使用上述创建的用户yanweijie-user01登录

(6)下载服务器192.168.104.117/yanweijie/mysql:v1的镜像

(7)查看日志

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

5.8维护管理Harbor

(1)停止/启动/重启Harbor

# docker-compose stop |start|restart

(2)修改harbor.yml配置文件

若需更改Harbor的配置文件时,先停止现有的Harbor实例并更新harbour.yml,然后运行prepare脚本来填充配置,最后重新创建并启动harbour的实例

(3)移除harbor服务容器同时保留镜像数据/数据库

# docker-compose up -d

(4)如需重新部署,需要移除harbor服务容器全部数据

# rm -rf /data/database/

# rm -rf/data/registry/

标签:Web,compose,harbor,私有,镜像,docker,Harbor
From: https://blog.csdn.net/2301_82330629/article/details/142311969

相关文章

  • Docker学习
    系列文章目录第一章基础知识、数据类型学习第二章万年历项目第三章代码逻辑训练习题第四章方法、数组学习第五章图书管理系统项目第六章面向对象编程:封装、继承、多态学习第七章封装继承多态习题第八章常用类、包装类、异常处理机制学习第九章集合学习第......
  • Docker详解
    一、概念Docker是一个开源的容器化平台,它可以使我们避免部署对服务器环境的依赖,减少复杂的部署流程。它允许开发者将应用程序及其依赖项打包到一个轻量级,可移植的容器中,然后在任何支持Docker的环境中运行。Docker的出现极大地简化了应用程序的部署和管理,使得开发、测试和生产......
  • openEuler22.03 LTS 离线安装 docker docker-compose
    本文转载自:https://blog.csdn.net/qq_33994039/article/details/140890728其中有几处我这里不能用的地方,标注一下章节5.1:openeuler启动命令:dockerrun-itd--nameopeneuler--privileged=trueopeneuler/openeuler:22.03-lts章节5.2:他那的docker-ce.repo用不了,可以改为......
  • 实现NAS远程下载,Docker部署qBittorrent、Transmission、贝锐花生壳
    与电脑不同,NAS通常都是7*24小时不间断运行,这使得下载资源变得更加便捷,解决了bt、pt下载需要长时间在线、挂机的问题。所以,对于许多选择品牌NAS或自行搭建NAS系统的用户而言,像qBittorrent、Transmission这样的下载管理工具早已成为不可或缺的必备应用。除了可以通过NAS自带的应用中......
  • 一个好用的docker容器管理后台Portainer
    一个好用的docker容器管理后台Portainerdocker源更换阿里云(仅支持阿里云用户使用具备公网访问能力的阿里云产品进行镜像加速)网上找到的—参考链接sudomkdir-p/etc/dockersudotee/etc/docker/daemon.json<<-'EOF'{"registry-mirrors":["https:......
  • 使用docker-compose搭建数Archery据库审核平台并简单测试
    Archery是一个开源的数据库审核平台,在日常数据库操作中,可以对操作进行审核。官网:https://archerydms.com/https://gitee.com/rtttte/Archery目前有业务使用需求,先用docker-compose部署,后期考虑配置到k8s上。目前最新版本是v1.11.3参考文档 https://archerydms.com/installation/do......
  • 深入理解 Docker Exec 与 Dockerfile CMD 的执行机制|容器启动|优化|命令执行
    在容器化应用的开发与部署过程中,Docker扮演着极为重要的角色。对于使用Docker的开发者而言,如何正确地执行容器中的命令是至关重要的。Docker提供了多种方式来运行容器中的命令,其中最常见的是Dockerfile中的CMD指令和运行时使用dockerexec命令。本文将深入探讨这两者的区......
  • 【linux】【docker】Docker默认网段配置导致无法访问
    背景集团有N个基地,所有基地的网络使用的是172.x.x.x网段,这本身没有什么问题!但Docker默认的桥接网段也是172.17.x.x的,如果不修改docker的默认配置会导致个别基地无法访问!列举几个基地使用的网段基地网段A基地172.30.x.xB基地172.28.x.xC基地172.18.x.x如......
  • Docker Compose 搭建 Redis 主从复制
    服务器状态IP PORTROLE192.168.142.1576379master192.168.142.1566390slave192.168.142.1556391slave02masterdocker-compose.ymlservices:redis-master:image:hub.atomgit.com/amd64/redis:7.0.13restart:alwayscontainer_name:redis-masterpr......
  • docker详解(一)
    1、虚拟化技术        1.1、什么是虚拟化        在计算机技术中,虚拟化(Virtualization)是一种资源管理技术。它是将计算机的各种实体资源,如:服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以用更好的方式来利用这......