基于ARM编译安装docker-harbor

2023-11-18

基于ARM编译安装docker-harbor

一、编译内核

此举是为了保证redis镜像可以正常启动

1.安装依赖
yum -y install gcc bc gcc-c++ ncurses ncurses-devel cmake elfutils-libelf-devel openssl-devel
2.下载解压
tar -zxvf linux-4.14.1.tar.gz
cd linux-4.14.1
3.清理内核目录
make mrproper
4.修改内核参数
make menuconfig
#选择Kernel Features --> Page szie
#完成之后,会在目录下生成.config文件

image-20210420154747881

image-20210420154832390

image-20210420154901768

5.注释.config文件中的参数CONFIG_SYSTEM_TRUSTED_KEYS
vim .config
#CONFIG_SYSTEM_TRUSTED_KEYS

#CONFIG_SYSTEM_TRUSTED_KEYS 参数前面添加#,将参数这行注释掉
6.编译内核
make -j50
make modules_install
make install
7.生成系统启动引导配置参数
grub2-mkconfig -o /boot/grub2/grub.cfg
8.修改默认内核启动项
  • 查看系统可用内核
cat /boot/grub2/grub.cfg | grep menuentry

image-20210420161120135

  • 修改开机默认内核
grub2-set-default 'CentOS Linux (4.14.1) 7 (AltArch)'
9.重启并验证
reboot
uname -r
getconf PAGESIZE

image-20210420161328638

二、安装harbor
1.签发证书
  • 创建目录
mkdir  /data/ssl -p
cd /data/ssl
pwd
  • 生成CA证书
openssl genrsa -out ca.key 3072
openssl req -new -x509 -days 3650 -key ca.key -out ca.pem

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CH
State or Province Name (full name) []:BJ
Locality Name (eg, city) [Default City]:BJ
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:
Email Address []:
  • 生成域名证书
openssl genrsa -out harbor.key 3072
openssl req -new -key harbor.key -out harbor.csr 

Country Name (2 letter code) [XX]:CH
State or Province Name (full name) []:BJ
Locality Name (eg, city) [Default City]:BJ
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:harbor
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:        
An optional company name []:
  • 签发证书
openssl  x509 -req -in harbor.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out harbor.pem -days 3650
  • 查看证书
openssl x509 -noout -text -in harbor.pem
  • 生成之后将会有以下文件

image-20210419100200069

2安装
  • 安装docker
wget https://download.docker.com/linux/centos/docker-ce.repo -P /etc/yum.repos.d
yum install -y docker-ce
systemctl start docker
systemctl enable docker
  • 安装docker-compose
yum install -y epel-release
yum install -y docker-compose --enablerepo=epel
  • 下载harbor
wget https://codeload.github.com/goharbor/harbor/tar.gz/refs/tags/v1.9.1
  • 解压harbor
tar -xvf v1.9.1
cd harbor-1.9.1/
  • 编辑/harbor.yml
vim make/harbor.yml

hostname: harbor 

https:
   # https port for harbor, default is 443
   port: 443
   # The path of cert and key files for nginx
   certificate: /data/ssl/harbor.pem
   private_key: /data/ssl/harbor.key
   
#可修改其中参数,如:主机名、https、数据库密码等。
  • 将将 photon:2.0 修改为 photon:3.0( photon:2.0不支持arm )
find ./ -type f|grep "Dockerfile$"|grep -v "\.D"|xargs sed -i "s#photon:2.0#photon:3.0#g"
  • 启动编译
vim Makefile
82 BUILDBIN=true
100 REGISTRYVERSION=v2.7.1
#修改以上行内容
  • 修改make/photon/Makefile的bug
vim make/photon/Makefile
187         @chmod 655 $(DOCKERFILEPATH_REG)/binary/bin/registry && $(DOCKERBUILD) -f $(DOCKERFILEPATH_REG)/$(DOCKERFILENAME_REG) 

#registry 前加bin
  • 修改make/photon/registry/Dockerfile的bug
vim make/photon/registry/Dockerfile
14 COPY ./make/photon/registry/binary/bin/registry /usr/bin
  • 修改make/photon/registryctl/Dockerfile的bug
vim make/photon/registryctl/Dockerfile
 12 COPY ./make/photon/registry/binary/bin/registry /usr/bin
  • 安装git
yum install -y git 
  • 拉取go镜像
docker pull golang:1.12.12
  • 编译harbor服务
make install GOBUILDIMAGE=golang:1.12.12 VERSIONTAG=v1.9.1 PKGVERSIONTAG=v1.9.1 UIVERSIONTAG=v1.9.1

报错:
error: RPC failed; result=35, HTTP code = 0报错:error: RPC failed; result=35, HTTP code = 0
处理:
git config --global http.postBuffer  20M #如果不行加大
  • 编译离线安装包
make package_offline GOBUILDIMAGE=golang:1.12.12 VERSIONTAG=v1.9.1 PKGVERSIONTAG=v1.9.1 UIVERSIONTAG=v1.9.1
  • 启动镜像
tar -xvf harbor-offline-installer-v1.9.1.tgz && cd harbor
sh install.sh

#如果报错就将其它已经启动容器删除
  • 登录
#修改hosts并登录
https://harbor/
#默认账号密码
账号:admin
密码:Harbor12345
三、上传镜像
1.docker配置
vim /etc/docker/daemon.json
#加入harbor的ip
"insecure-registries":["192.168.0.58"],

systemctl daemon-reload && systemctl restart docker
2.登录harbor
docker login 192.168.0.58

Username:admin
Password: Harbor12345
3.上传镜像
#下载并打tag
docker pull centos:7.9.2009
docker tag centos:latest 192.168.0.58/library/centos:7.9.2009

#上传镜像
docker push 192.168.0.58/library/centos:7.9.2009

#删除原来打包好的镜像
docker rmi 192.168.0.58/library/centos:7.9.2009

#拉取镜像
docker pull 192.168.0.58/library/centos:7.9.2009
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于ARM编译安装docker-harbor 的相关文章

  • MySQL索引篇

    目录 MySQL索引 一 怎么知道一条SQL语句有没有使用索引 二 如何排查慢查询 三 索引失效以及为什么失效 四 索引为什么能提高查询性能 五 为何选择B 树而不是B树 六 索引分类 七 什么时候创建以及什么时候不需要索引 八 索引优化
  • Python PyQt5(三)添加控件,绑定简单事件处理函数

    coding utf 8 Author BlueSand Email slxxfl000 163 com Web www lzmath cn Blog https blog csdn net weixin 41810846 Date 201
  • Leetcode 160. 相交链表 解题思路及C++实现

    解题思路 先将两个链表构建成一个环 定义两个快慢指针 当它们相遇时 将fast指针从头结点往后遍历 每次走一步 当这两个指针再次相遇时 该节点就是相交节点 Definition for singly linked list struct L
  • Verilog中forever、repeat、while、for四类循环语句(含Verilog实例)

    当搭建FPGA逻辑时 使用循环语句可以使语句更加简洁易懂 Verilog中存在四类循环语句 如标题 几种循环语句的具体介绍和用法如下 1 forever 连续的执行语句 语法格式 forever
  • 【算法入门】什么是时间复杂度和空间复杂度,最优解

    如何评价算法复杂度 时间复杂度 额外空间复杂度 常数操作 常数操作 常数操作 执行时间固定和数据量没有关系的运算操作 如果和数据量有关就不是常数操作 运算 数组寻址 数组里获取3位置和3000w位置数据时间相等 1 1 和100w 100w
  • unity3D期末作业捕鱼游戏,适合初学者学习使用,包含源程序所有文件

    虚拟现实期末作业捕鱼游戏 免积分下载 点我下载资源 有按钮 背景音乐 可以发射炮弹捕鱼 可以选择难度 可以调节音乐声音大小 有游戏加载进度条 详细情况请看如下动态图 点我下载资源
  • DataFrame添加列名,查看均值等,seaborn

    查看数据 seaborn画图简单好看 看两两特征的关系 对角线是自己和自己 dropna 处理缺失值
  • 设计模式 之 状态模式

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 设计模式 之 状态模式 概念 类的行为基于它的状态而改变 主体思想是将各种具体的状态类抽象出来 也就是会有很多状态类 使用场景 代码中包含大量与对象状态有关的条件语句 行为
  • C#多线程基础(一) PS:阅读C#多线程编程实战第一章总结

    一 基本概念 进程 Process 在操作系统中正在运行的应用程序被视为一个进程 包含着一个运行程序所需要的资源 进程可以包括一个或多个线程 线程 Thread 进程的基本执行单元 是操作系统分配CPU时间的基本单位 在进程入口执行的第一个
  • Git(1)

    步骤1 使用Git Bash 方法1 使用命令行进入Git安装目录的bin文件下 cd Program Files x86 Git bin 这样就可以使用Git Bash了 方法2 相比方法1更简便 步骤2 设置Git 配置email gi
  • ts类型体操 43 - Exclude

    43 Exclude by Zheeeng zheeeng easy built in union Question Implement the built in Exclude
  • Unity之Animation动画

    Unity之Animation动画 Unity之Animation绘制动画 这篇文章做最简单的动画 让一个立方体从左边移动到右边 1 创建一个Unity的新工程 名为TestAnimation 点击Create And Open按键 打开工
  • 机器学习之支持向量机: Support Vector Machines (SVM)

    机器学习之支持向量机 Support Vector Machines SVM 欢迎访问人工智能研究网 课程中心 网址是 http i youku com studyai 本篇博客介绍机器学习算法之一的支持向量机算法 理解支持向量机 Unde
  • 蓝桥杯:优秀的拆分

    蓝桥杯 优秀的拆分https www lanqiao cn problems 801 learning 目录 题目描述 输入描述 输出描述 输入输出样例 输入 输出 输入 输出 题目分析 位运算 AC代码 Java 题目描述 一般来说 一个
  • CSS font-family 中的苹方字体

    苹方提供了六个字重 font family 定义如下 苹方 简 常规体 font family PingFangSC Regular sans serif 苹方 简 极细体 font family PingFangSC Ultralight
  • 【Pytorch】六行代码实现:特征图提取与特征图可视化

    前言 之前记录过特征图的可视化 Pytorch实现特征图可视化 当时是利用IntermediateLayerGetter 实现的 但是有很大缺陷 只能获取到一级的子模块的特征图输出 无法获取内部二级子模块的输出 今天补充另一种Pytorch
  • 微信小程序API——向服务器发送请求

    在微信小程序中 我们可以通过微信的API与服务器进行数据传递 接下来我会详细介绍一下wx request的用法 首先给出前端代码 我们定义一个按钮 绑定点击事件 用于给服务器发送请求 当服务器返回数据后 通过wx for循环出数组中的数据
  • oracle如修改表字段的类型(表中有数据)

    如何在数据表有数据的情况下 修改字段类型 看到如何修改表字段类型 我想大多数人都觉得直接用修改语句 ALTER TABLE 表名 MODIFY 列名 类型 如果是修改多个字段就在后面继续 modify ALTER TABLE 表名 MODI

随机推荐

  • Reactive的方式访问Redis

    前言 本文主要大概介绍一下响应式 反应式编程方式访问 redis 不能解决很多生产问题 只是帮助大家对响应式编程有一个认识 本文是以Reactive 对方式访问 Redis 当然也可以访问mongodb 以及部分关系型数据库 例如 Post
  • Channel的定义、写入、读取、关闭与遍历

    目录 1 Channel基础 为什么要引入Channel Channel简介 channel的定义 声明 channel的数据类型 引用类型 向channel中写入数据 从channel中读取数据 2 channel的遍历与关闭 chann
  • 51单片机按键控制数码管0~9_基于proteus的51单片机开发实例24-矩阵键盘(行列式键盘)...

    1 基于proteus的51单片机开发实例24 矩阵键盘 1 1 实验目的 图1 矩阵键盘电路 本实例我们来学习矩阵键盘 行列式键盘 的电路设计 编程实现 目的是通过较少的I O口来识别多个按键 1 2 设计思路 我们在前面已经学习过独立按
  • Maya_to_Unity工作流程

    注意事项 1 maya的place2Dtexture不起作用 只能使用pbs节点的uv调整 只能调整scale offect 所以贴图的rotate只能使用uv工具进行调整 2 Unity项目第一步将色彩空间设置为liner 3 灯光材质与
  • Keil中如何生成bin文件

    一般借助fromelf工具 安装好Keil后默认会在安装目录中找到fromelf工具 一般在windows平台很难像Linux平台一样使用命令的方式启动格式转换 但是类似IAR 或Keil等带编译器的IDE 都会有编译选项 即编译器或编译后
  • 秒杀详解!!秒杀竟有这些问题?再有人问秒杀,把这篇文章丢给他!!!

    什么是秒杀 seckill seckill是一个老生常谈的场景 它一般出现在电商系统中 在某些特定的节日 限定特定商品数量以超低折扣进行促销引流 按照秒杀的特性 特价商品一般在一两秒内被抢光 剩下的人只会出现售罄页面 这一两秒会出现一个瞬间
  • shadow文件中密码的加密方式

    shadow文件中密码的加密方式 1 查看shadow文件的内容 cat etc shadow 可以得到shadow文件的内容 限于篇幅 我们举例说明 root 1 Bg1H 4mz X89TqH7tpi9dX1B9j5YsF 14838
  • GANSS ALT71D键盘使用说明

    Ganss ALT71D键盘使用说明 两个月之前入手了这款双模键盘 到现在基本只使用蓝牙连接了 数据线太多了 太乱了 用了两个月之后有了一点经验 记录在这里 首先高斯键盘是有官网的 输入www ganss cn就可以看到两把104键的键盘了
  • 技术博客笔记大汇总

    hello 小伙伴们大家好 今天给小伙伴们推荐的开源项目是 YCBlogs 这个开源项目整合博客笔记等资料信息 15年10月到至今 包括Java基础及深入知识点 Android技术博客 Python Go学习笔记等等 还包括平时开发中遇到的
  • 高性能MySQL学习笔记(1) —— MySQL架构

    MySQL架构 1 MySQL逻辑架构 这里分为三层 1 连接层 连接与线程处理 这一层并不是MySQL独有 一般的基于C S架构的都有类似组件 比如连接处理 授权认证 安全等 2 SQL处理层 也叫MySQL服务器层 包括缓存查询 解析器
  • python——pip 安装出现ERROR: Exception: Traceback (most recent call last):的问题

    用pip安装东西 总会提示 当我按照指示输入 python m pip install upgrade pip 命令时 用100次pip 99次会报下面的错误之前看了很多前人的办法 有说是因为网络不好 建议多次暴力尝试的 还有建议说使用ea
  • AI时代你需要知道的:知识图谱技术原理(必读)

    知识图谱是什么 知识图谱最早由谷歌发布 为了提升搜索引擎返回答案的质量以及用户查询的效率 在知识图谱辅助下 搜索引擎可以洞察到用户查询背后的一个语义信息 然后返回更为精准结构化的信息 从而更大可能的去满足用户的一个查询需求 当我们进行搜索时
  • mysql集群

    3 mysql集群 3 1 企业中常用的数据库解决方案 3 2 mysql常见的几种集群方式 3 2 1 MYSQl MMM Master Master Replication Manager for MySQL MySQL MMM 是 M
  • idea debug到一半停止_使用IDEA的Debug调试功能,查看程序的运行过程

    Debug追踪 使用IDEA的断点调试功能 查看程序的运行过程 知乎视频 www zhihu com 1 在有效代码行 点击行号右边的空白区域 设置断点 程序执行到断点将停止 我们可以手动来运行程序 2 点击Debug运行模式 3 程序停止
  • C语言printf打印的奥秘

    基础补充 想完全掌握C语言的 printf 函数 你就得明白C语言中的基本类型及其所占字节数 位 字节 字的概念大家自己百度了解 下面我只给其关系 8位 1字节 2字节 1字 代码示例 作为一个刚入门的小白 我们玩的数据都是十分小的 一般不
  • kubernetes最佳实践(三) - kubedns部署

    1 服务发现 kubernetes 提供了 service 的概念可以通过 VIP 访问 pod 提供的服务 但是在使用的时候还有一个问题 怎么知道某个应用的 VIP 比如我们有两个应用 一个 app 一个 是 db 每个应用使用 rc 进
  • Spring boot的配置文件中属性值有特殊符号,比如@的怎么解决

    用双引号将值引起来就可以识别 例子
  • 【Zabbix实战之运维篇】Zabbix监控模板的配置管理

    Zabbix实战之运维篇 Zabbix监控模板的配置管理 一 检查Zabbix平台的状态 1 检查Zabbix各组件容器状态 2 检查Zabbix的web页面 二 查看系统的默认模板信息 1 查看系统的所有监控模板 2 搜索某个监控模板 3
  • springCloud-系统学习3- 创建微服务工程2

    2 11 Feign应用 是对下面代码的优化 自动根据参数拼接http请求地址 2 11 1 操作 效果 2 12 Feign负载均衡及熔断 Feign集成了ribbon配置项和Hystrix熔断的Fallback配置项 可以使用Feign
  • 基于ARM编译安装docker-harbor

    基于ARM编译安装docker harbor 一 编译内核 此举是为了保证redis镜像可以正常启动 1 安装依赖 yum y install gcc bc gcc c ncurses ncurses devel cmake elfutil