docker企业单位私有镜像仓库 Harbor 搭建

news2024/12/28 3:01:18

docker私有镜像仓库 Harbor 搭建

  • 背景说明
  • 使用环境
  • 安装部署
    • docker安装
    • docker-compose安装
  • 安装 Harbor
  • Harbor UI管理
  • docker 登录
  • docker推送镜像和拉取镜像
    • docker推送镜像
    • docker 拉取镜像

背景说明

为了方便管理docker容器镜像,通常使用各大云平台提供的镜像服务,缺点就是收费。因此很多企业单位都会自行搭建私有的容器镜像管理。
这里使用docker docker-compose 来搭建Harbor镜像管理。

使用环境

Docker: 20.10.12
Docker-compose: 1.29.2
Harbor: 2.4.1

安装部署

docker安装

#卸载podman软件(可以使用rpm -qa|grep docker)
yum remove docker
#下载docker-ce源(国外可使用阿里源)
curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
# 直接使用阿里deocker-ce源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 指定docker版本 20.10.12 这里安装k8s 1.23.6
yum install docker-ce-20.10.12 docker-ce-cli-20.10.12 containerd.io docker-compose-plugin
# 重启docker
systemctl restart docker

docker-compose安装

注意docker和docker-compose有版本对应,需要自行查验

#从国外服务器下载并安装docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 授权
chmod +x /usr/local/bin/docker-compose

国外下载比较慢,亲们都懂的,所以推荐国内源

#从国内服务器https://get.daocloud.io下载并安装docker-compose
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.2.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# 授权
chmod +x /usr/local/bin/docker-compose
# 查询安装版本
docker-compose --version

在这里插入图片描述

安装 Harbor

官网给出了两种安装模式,在线安装包或离线安装包。其区别是离线安装包里面含有镜像,在线版本在安装时则去Docker Hub拉取镜像。我们这里使用离线安装包。

# 下载离线包
wget https://github.com/goharbor/harbor/releases/download/v2.4.1/harbor-offline-installer-v2.4.1.tgz
# 解压
tar zxvf harbor-offline-installer-v2.4.1.tgz
cd harbor

这存在问题 使用wget 下载很慢,可以使用迅雷下载,下载完成后上传主机即可。

在 harbor 文件夹里可以看到有一份文件 harbor.yml.tmpl,这是 Harbor 的配置信息,我们复制一份并进行修改(以下仅显示修改部分):

# 复制生成配置文件
cp harbor.yml.tmpl harbor.yml
# 修改配置
vi harbor.yml

这里只使用http 80端口即可,使用https 443需要签发证书,自行签发证书是不授信的,需要配置docker文件,如是k8s集群,各个节点存在增减,维护起来相对困难,直接使用http 80即可。

配置文件只需要修改的项

# Configuration file of Harbor

# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname: 47.14.7.36 # 本机IP

# http related config
http:
# port for http, default is 80. If https enabled, this port will redirect to https port
port: 80 # hhtp80端口

# https related config
#https:   #不启用https 使用https需要配置证书而且证书必须授信否则docker无法登录和拉取镜像
# https port for harbor, default is 443
#port: 8443 #443端口修改
# The path of cert and key files for nginx
#certificate: /usr/local/harbor/data/cert/harbor.yunzaixian.top.crt #后续生产的正书
#private_key: /usr/local/harbor/data/cert/harbor.yunzaixian.top.key #后续生产的正书

# # Uncomment following will enable tls communication between all harbor components
# internal_tls:
# # set enabled to true means internal tls is enabled
# enabled: true
# # put your cert and key files on dir
# dir: /etc/harbor/tls/internal

data_volume: /usr/local/harbor/data/images # 文件保存目录
location: /usr/local/harbor/data/logs # 日志保存目录

配置完成后执行构建启动

./install.sh --with-chartmuseum

Harbor UI管理

直接访问安装主机地址,端口号80
http://IP:80
或者使用域名解析到当前主机
如:http://harbor.yunzaixian.top
在这里插入图片描述
使用默认账号/密码登录
admin/Harbor12345

docker 登录

docker 上传镜像和拉取镜像都需要登录到 harbor中

# 登录 harbor
docker login -u admin -p Harbor12345 http://harbor.yunzaixian.top

docker推送镜像和拉取镜像

docker推送镜像

首先docker需要将镜像打tag
docker tag 镜像名:TAG harbor地址/项目/镜像名:TAG
其次执行推送
docker push harbor地址/项目/镜像名:TAG
如:
docker tag my-toos:1.001 harbor.yunzaixian.top/my-toos/my-toos:1.001
docker push harbor.yunzaixian.top/my-toos/my-toos:1.001

docker 拉取镜像

docker推送完镜像后点击项目
在这里插入图片描述
进入镜像详细
在这里插入图片描述
拉取镜像命令复制
docker pull 19.19.10.34/application-monitor/application-monitor@sha256:62125e99c07e7a7798b2244ca7cdd458edce31b9397b3765aaa5f89b3d22bd7b
在这里插入图片描述
最后docker启动镜像到容器即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1113380.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

内裤洗衣机到底值不值得买?内衣洗衣机便宜好用的牌子

有很多姐妹上班累爆了,回家洗澡换下的衣物还要区分开来,将内衣裤用来自己手洗,还要专门使用杀菌洗衣液才能安心,而且随着科技的进步,现在市面上拥有了一款专门为女生设计的内衣洗衣机,可以解决日常手洗内衣…

英语 chatGPT分析句子与验证正确性 翻译

有时候我想说的时候,又不确定说的对不对。chatGPT知道。 “as well as” 和 “as good as” 都是英语中常见的短语,但它们有不同的用法和含义。 “As Well As”(以及): “As well as” 是一个连接词短语,用来连接两…

最优闭回路问题

目录 一、欧拉回路与道路 1、欧拉回路与道路 2、欧拉图存在的条件 二、中国邮路问题 1、中国邮路问题 2、中国邮路问题求解 3、有奇点的G的中国邮路问题等价问题 例1 【问题分析】 (1)先求图1中任意两点之间的距离矩阵d1如表1(Floyd算…

软件测试肖sir__python之ui自动化定位方法(2)

Selenium中元素定位方法 一、定位方法 要实现UI自动化,就必须学会定位web页面元素,Selenium核心 webdriver模块提供了9种定位元素方法: 定位方式 提供方法 id定位 find_element_by_id() name定位 find_element_by_name() class定位 find_elem…

Three.js + Tensorflow.js 构建实时人脸点云

本文重点介绍使用 Three.js 和 Tensorflow.js 实现实时人脸网格点云所需的步骤。 它假设你之前了解异步 javascript 和 Three.js 基础知识,因此不会涵盖基础知识。 该项目的源代码可以在此 Git 存储库中找到。 在阅读本文时查看该代码将会很有帮助,因为…

nginx配置download模块

nginx.conf配置 location /download{alias /usr/local/webapp/download/;sendfile on;autoindex on; # 开启目录文件列表autoindex_exact_size on; # 显示出文件的确切大小,单位是bytesautoindex_localtime on; # 显示的文件时间为文件的服务器时间charset utf…

hexo发生错误 Error: Spawn failed

错误描述 仓库中有东西,运行如下命令后报错 hexo d报错提示: 原因分析: 看别人的博客是用git进行push或hexo d的时候改变了一些.deploy_git文件下的内容,这个.deploy_git的内容对于hexo来说可能是系统文件,这里挖坑 解决办法 一个个的…

如何在不恢复出厂设置的情况下解锁 Android 手机密码?

如何在不恢复出厂设置的情况下解锁 Android 手机密码? 当您忘记 Android 手机的密码时,可能会有压力,尤其是当您不想恢复出厂设置并删除所有数据时。但是,有一些方法可以在不诉诸如此激烈的步骤的情况下解锁手机。我们将在这篇文…

平板有必要买触控笔吗?推荐的ipad手写笔

iPad之所以能吸引这么多人,主要是因为它的功能出色。用来画画、做笔记,也是一种不错的体验。但如果只是用来看电视和打游戏的话,那就真的有点大材小用了。如果你不需要昂贵的苹果电容笔,也不需要用来专业的绘图,那你可…

SSM+SpringBoot重点

SSM+SpringBoot重点 0、VO DTO DO PO介绍 VO ​ vo(view object)视图对象 ​ 用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来,一般由后端传输给前端。 DTO ​ DTO(data transfer object)数据传输对象 ​ 用于展示层和逻辑层之间的数据传输。 …

视频监控这样做,简单又高效!

随着技术的不断进步,视频监控系统已经变得更加高效和智能,可以提供更全面的监控和分析功能,有助于提高安全性、管理效率和决策支持。 客户案例 超市连锁店 福建某全国性超市连锁店面临高额商品损失、偷窃问题,以及对客户安全和员工…

(论文翻译)UFO: Unified Feature Optimization——UFO:统一特性优化

作者: Teng Xi 论文总结:总结 Code: https://github.com/PaddlePaddle/VIMER/tree/main/UFO 摘要: 本文提出了一种新的统一特征优化(Unified Feature Optimization, UFO)范式,用于在现实世界和大规模场景下训练和部署深度模型…

Python学习基础笔记七十六——Python装饰器2

装饰器,英文名字decorator。 我们开发Python代码的时候,经常碰到装饰器。 通常被装饰后的函数,会在原来的函数的基础上,增加一些功能。 通常装饰器本事也是一个函数,那么装饰器是怎么装饰另外一个函数的呢&#xff1f…

Unity 镜面反射

放置地板和模型 首先,让我们放置地板和将放置在其上的 3D 模型。这次,我使用 Plane 作为地板。从层次视图中选择“创建”→“3D 对象”→“平面”。我们还在地板上放置了 Unity-chan、Cube 和 Sphere。 接下来,创建地板的材质。在项目视图中…

安装 Dispatch 库

首先,我们需要安装 Dispatch 库。在命令行中运行以下命令来安装 Dispatch: $ sbt console然后,在 Scala 控制台中,导入所需的库: import dispatch._接下来,我们需要设置代理服务器。在 Dispatch 中&#…

个性联邦学习

Towards Personalized Federated Learning 一、背景二、解决策略 2.1 策略一.全局模型个性化2.2 策略二.学习个性化模型 三、具体方案 3.1 全局模型个性化 3.1.1 基于数据:减少客户端数据统计异构性3.1.2 基于模型:在学习一个强大的全局模型,…

014 - ARM64上的GIC-400(GICv2)

本章节涉及到的参考文档有三个: BCM2711 ARM Peripherals.pdfARM Generic Interrupt Controller Architecture Specification.pdf (简称gic_v2)CoreLink GIC-400 Generic Interrupt Controller Technical Reference Manual.pdf 1. GIC 发展历史 在早期的 ARM 系统…

睿趣科技:抖音小店新手运营攻略

随着短视频平台的兴起,抖音已经成为了一个炙手可热的营销工具。越来越多的商家选择在抖音上开设小店,以此来拓展自己的业务。那么,作为新手,如何运营好自己的抖音小店呢?本文将为您提供一些实用的建议。 首先,要明确自…

python实现图片与视频转换:将视频保存为图片,将批量图片保存为视频

1、将视频保存为图片 1.1 完整代码 # -*- coding: utf-8 -*- import cv2 import os cap cv2.VideoCapture(TestFiles/2.mp4) index 0 prop cv2.CAP_PROP_FRAME_COUNT total int(cap.get(prop)) # 获取视频总帧数 while(cap.isOpened()):# ret返回布尔值ret, frame cap.r…

竹云荣膺2023十大数字化转型创新企业

10月14日上午,“2023DTWORLD国际数字科技领袖峰会/ IDI Award 数创奖颁奖盛典”在深圳会展中心(福田)2号馆成功举办。本届峰会由深圳市科学技术协会等相关政府部门指导,由深圳市科技交流服务中心、深圳市人工智能行业协会、湾盟产…