首页 > 其他分享 >搭建harbor仓库

搭建harbor仓库

时间:2024-04-17 14:37:44浏览次数:18  
标签:compose harbor 192.168 仓库 镜像 docker 搭建

搭建harbor仓库

harbor概述

容器技术越来越或火,越成熟,容器应用的开发和运行始终离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境的Registry也是非常必要的。
所以Harbor孕育而生,Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。

Harbor的主要功能

  • 基于角色的访问控制
    用户与Docker镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。

  • 基于镜像的复制策略
    镜像可以在多个Registry实例中复制(可以将仓库中的镜像同步到远程的Harbor,类似于MySQL主从同步功能),尤其适合于负载均衡,高可用,混合云和多云的场景。

  • 图形化用户界面
    用户可以通过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间。

  • 审计管理
    所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。

  • 部署简单
    提供在线和离线两种安装工具, 也可以安装到vSphere平台虚拟设备。

harbor搭建

搭建准备

开始搭建

docker安装(离线)

将安装包文件上传到服务器目录并解压。

tar -zxvf docker-23.0.1.tgz

将解压出来的docker文件内容移动到 /usr/bin/ 目录下.

cp docker/* /usr/bin/

将docker注册为service,在/etc/systemd/system目录下创建docker.service文件,并配置如下内容保存。

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
 
[Install]
WantedBy=multi-user.target

添加文件权限并启动docker,执行如下命令。

chmod +x /etc/systemd/system/docker.service                      #添加文件权限
systemctl daemon-reload                                          #重载unit配置文件
systemctl start docker                                           #启动Docker
systemctl enable docker.service                                  #设置开机自启

验证docker安装是否成功。

systemctl status docker                                          #查看Docker状态
docker -v                                                        #查看Docker版本

docker-compose安装(离线)

将之前下载的docker-compose文件复制到/usr/bin/目录下,并给执行权限。

mv docker-compose-linux-x86_64 docker-compose
cp docker-compose /usr/bin/
chmod +x /usr/bin/docker-compose

安装成功,验证。

docker-compose -v

harbor安装(离线)

上传harbor压缩包,并解压。

tar -zxvf harbor-offline-installer-v1.10.16.tgz

进入harbor目录给予以下文件执行权限。

chmod +x common.sh install.sh prepare

修改harbor.yml文件。

注:以实际行数为准,只供参考。

  • 修改第五行 hostname 为主机ip或域名;
  • 注释第13行 https;
  • 注释第15行 port: 443;
  • 修改第27行 harbor_admin_password,设置一个admin用户的密码;
  • 修改第40行 data_volume,修改harbor的数据目录;
  • 修改第87行 location,修改harbor的日志目录。

安装,执行harbor目录下的install.sh文件。

./install.sh

✔ ----Harbor has been installed and started successfully.----

出现上面这句表示安装成功。

harbor维护

容器 功能
harbor-core 配置管理中心
harbor-db PG数据库
harbor-jobservice 负责镜像复制
harbor-log 记录操作日志
harbor-portal Web管理页面和API
nginx 前端代理,负责前端页面和镜像上传/下载转发
redis 会话
registryctl 镜像存储
  • 容器数据持久化目录(可更改):/data
  • 日志文件目录(可更改):/var/log/harbor
  • 数据库做好定期备份。

配置harbor主从复制

主备

  • 简单,主挂了切到备Harbor;
  • 同一时间只有一台提供服务;
  • 适合少量镜像下载。

双主

  • 双向配置复制;
  • 两台同时提供服务;
  • 前面增加负载均衡器。

一主多从

  • 多个从同步主;
  • 适合多地区业务、大量镜像下载需求。

主从配置步骤

系统管理$\Longrightarrow$仓库管理$\Longrightarrow$新建目标

  • 提供者:选择Harbor;
  • 目标名:自定义,可填一个具有声明意义的名称;
  • 描述:自定义,可备注目标仓库的一些信息;
  • 目标URL:对端仓库的地址;
  • 访问ID:目标仓库的用户名;
  • 访问密码:访问ID的密码;
  • 验证远程证书:如果对端用的是自签证书或者非信任证书的话不要勾选此项。

系统管理$\Longrightarrow$复制管理$\Longrightarrow$新建规则

  • 名称:自定义,有声明意义;
  • 描述:自定义,备注规则中仓库信息;
  • 复制模式
    • Push-based:从本地仓库推送到远程仓库,双主模式两个harbor同时配置;
    • Pull-based:从远程仓库拉去到本地仓库,一主多从模式的从库可配置,主从模式从库可配置;
  • 目标仓库/源仓库:对端仓库地址,在仓库管理中添加;
  • 资源过滤器:指定根据什么来同步;
  • 触发模式:一般选择事件驱动,这样主库已更新就会同步。

docker基础命令使用以及镜像上传下载

主机连接harbor仓库命令

docker login 目标仓库地址:端口
输入账号密码

docker login 192.168.106.170:80

登录docker报错,按照文档《登录docker报错》处理

退出连接

docker logout 目标仓库地址:端口

docker logout 192.168.106.170:80

上传镜像到私有仓库及验证

docker push 仓库地址/项目名称/镜像:镜像版本

docker push 192.168.106.170:80/test/nginx:1.23-alpine

拉取harbor仓库镜像报错

[root@es-single ~]# docker pull 192.168.106.170/ferhat/nginx:1.23-alpine
Error response from daemon: Get "https://192.168.106.170/v2/": dial tcp 192.168.106.170:443: connect: connection refused

加上端口拉取docker pull 192.168.106.170:80/ferhat/nginx:1.23-alpine

/etc/systemd/system/docker.service文件下面一行后面添加--insecure-registry=192.168.2.195(没试过)
ExecStart=/usr/bin/dockerd --insecure-registry=192.168.2.195

然后重启docker服务

systemctl daemon-reload
systemctl restart docker

标签:compose,harbor,192.168,仓库,镜像,docker,搭建
From: https://www.cnblogs.com/wszzn/p/18140640

相关文章

  • 08 Vue3项目搭建后台管理系统
    项目配置elementPlus1.下载安装npminstallelement-plus@element-plus/icons-vue2.main.ts全局注册import{createApp}from'vue';import{createPinia}from'pinia';//1.引入elementPlusimportElementPlusfrom'element-plus';//......
  • ROS2笔记1--简介及开发环境搭建
    一、ROS2简介1.1、ROS2概述ROS2是第二代的RobotOperatingSystem,ROS1的升级版本,解决了ROS1存在的一些问题。与ROS1相比,Linux版本与ROS2版本的选择也有关系,对应关系如下:ROS2版本Ubuntu版本FoxyUbuntu20.04GalacticUbuntu20.04HumbleUbuntu......
  • 前端【小程序】01-入门篇【注册小程序账号】【开发环境搭建】
    小程序的优势: 学习内容: 两部分内容:1、组件、配置、生命周期、事件处理、数据渲染、API、自定义组件、VantUI、分包加载等2、通告管理、用户管理、房屋管理、报修管理、访客管理等各个功能模块一、注册小程序账号微信公众平台1、在微信公众平......
  • linux系统简介与环境搭建
    linux系统简介与环境搭建注:该题册一旦提交不可见不可修改,甚至不知道成绩,请谨慎提交,以下答案均为个人见解,非标准答案,如有意见,请评论!!!一、单选题1、Linux操作系统的应用领域极其广泛,在下列选项中,哪些可能用到了Linux操作系统?A、汽车B、手机C、机顶盒D、以上全部2......
  • linux系统简介与环境搭建
    linux系统简介与环境搭建注:该题册一旦提交不可见不可修改,甚至不知道成绩,请谨慎提交,以下答案均为个人见解,非标准答案,如有意见,请评论!!!一、单选题1、Linux操作系统的应用领域极其广泛,在下列选项中,哪些可能用到了Linux操作系统?A、汽车B、手机C、机顶盒D、以上全部2......
  • redis自学(35)搭建分片集群
    分片集群结构主从和哨兵可以解决高可用、高并发读的问题。但是依然有两个问题没有解决:l 海量数据存储问题l 高并发写的问题使用分片集群可以解决上述问题,分片集群特征:l 集群中有多个master,每个master保存不同数据,因此能存多少取决于master节点的数量,解决了海量数据存储的......
  • jenkins的搭建及问题处理
    Jenkins搭建第一步本文讲述的本人搭建Jenkins的流程及遇到的坑及处理方法1.搭建Linux操作系统为sentosJenkins版本为24稳定版操作命令:sudowget-O/etc/yum.repos.d/jenkins.repohttps://pkg.jenkins.io/redhat-stable/jenkins.reposudorpm--importhttps://pkg.jenkin......
  • Git代码迁移到新仓库
    在本地原项目的仓库地址操作,打开cmd执行迁移操作。若本地无仓库,需要先下载下来:gitclonehttps://git.XXX/projectA.gitgitcheckoutdev添加需要迁移的远程仓库Bgitremoteaddproject_Bhttp://git.xxxx/projectB.git把project_B远程仓库中数据抓取到本仓库gitfet......
  • Python Flask+Pandas读取excel显示到html网页: 环境搭建显示内容
    前言全局说明一、安装flask模块二、引用模块三、启动服务模块安装、引用模块、启动Web服务方法,参考下面链接文章:https://www.cnblogs.com/wutou/p/17963563Pandas安装https://www.cnblogs.com/wutou/p/17811839.html四、环境搭建4.1.2文件名:index.pyfromflaskimp......
  • Nacos高可用集群搭建与使用
    参考:https://blog.csdn.net/Alwayszmx/article/details/122291741一、Nacos简介Nacos致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos帮助您更敏捷和容易地构建、交付和管理微服务......