Arm64架构CentOS7服务器搭建Fabric环境

news/2025/2/21 7:03:15/

本文记录在Arm64架构的CentOS7服务器上搭建Fabric环境的流程,该主机可以访问公网但是不方便访问Github和Docker Hub。

文章目录

  • 一、软件包管理器
  • 二、基本软件
  • 三、Docker和Docker Compose
  • Golang
  • 五、Java
  • 六、Fabric
    • 6.1. 测试网络项目源代码
    • 6.2. 二进制文件
    • 6.3. 镜像文件
  • 七、参考(部分)


一、软件包管理器

错误:
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=aarch64&repo=os&infra=stock error was14: curl#6 - "Could not resolve host: mirrorlist.centos.org; 未知的错误"
在这里插入图片描述
原因:CentOS7官方源已停止更新,导致源无法使用,需要换为国内镜像源。

备份:

cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

换源:

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-altarch-7.repo

清理YUM缓存并生成新的缓存:

yum clean all
yum makecache

测试新的YUM源:

yum search vim

二、基本软件

yum update -y
yum install wget -y
yum install git -y
yum install tree -y

错误:安装jq时提示没有可用的软件包。
在这里插入图片描述
原因:该软件包在第三方的yum源里面,而不在官方yum源里面。解决的方法就是安装epel源。

yum install epel-release -y
yum update -y
yum install jq -y

三、Docker和Docker Compose

安装必要的组件:

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

查询可安装的Docker版本:

yum list docker-ce --showduplicates | sort -r

安装:

yum -y install docker-ce-26.1.4

出现如下问题时:
在这里插入图片描述
编辑/etc/yum.repos.d/docker-ce.repo文件,将[docker-ce-test]下方的enabled=0修改为enabled=1

systemctl start docker
systemctl enable docker
docker version

注1:安装Docker时会自动安装插件(plugin)式的Docker Compose(命令为:docker compose xxx),但是我们需要二进制文件形式的(命令为:docker-compose xxx)。

对于CentOS7.9,使用yum命令安装的docker-compose的版本为1.15,不符合要求。从Github(https://github.com/docker/compose/releases)下载符合版本要求和架构要求的docker-compose二进制文件,例如:

https://github.com/docker/compose/releases/download/v2.33.0/docker-compose-linux-aarch64

保存到/usr/bin/下并重命名为docker-compose,赋予可执行权限即可。

注2:从Docker Compose v2.0开始,YAML文件中的version字段已经不再需要,后续使用时的相关警告信息可以忽略。


Golang

下载并解压:

wget https://dl.google.com/go/go1.22.4.linux-arm64.tar.gz
tar -C /usr/local -zxvf go1.22.4.linux-arm64.tar.gz

打开/etc/profile文件:

vim /etc/profile

在文件的最后添加如下内容:

export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin

使用source命令使之生效:

source /etc/profile

验证Golang的安装是否成功:

go version 

配置代理和Modules:

export GOPROXY=https://goproxy.cn,direct
export GO111MODULE=on

五、Java

yum install java-11-openjdk.aarch64 -y
java --version 

六、Fabric

6.1. 测试网络项目源代码

克隆测试网络的仓库:

git clone https://gitee.com/hyperledger/fabric-samples.git

6.2. 二进制文件

在有网络环境(本机)下载二进制文件的压缩文件hyperledger-fabric-linux-arm64-2.5.9.tar.gzhyperledger-fabric-ca-linux-arm64-1.5.12.tar.gz,上传到服务器/fabric-samples文件夹下。

解压压缩文件并赋予可执行权限:

tar -zxvf hyperledger-fabric-linux-arm64-2.5.9.tar.gz
tar -zxvf hyperledger-fabric-ca-linux-arm64-1.5.12.tar.gz
chmod +x ./bin/*

打开/etc/profile文件:

vim /etc/profile

在文件的最后添加如下内容:

export PATH=$PATH:/usr/local/hyfa/fabric-samples/bin

使用source命令使之生效:

source /etc/profile

6.3. 镜像文件

在有网络环境(Amd64架构Vmware虚拟机,可FanQiang)修改 dockerd 配置文件:

vim /etc/docker/daemon.json

添加如下内容以开启 dockerd 的实验属性:

{"experimental": true
}

使用以下命令重置服务:

systemctl daemon-reload
systemctl restart docker

之后即可在Amd64架构下拉取Arm64架构的镜像文件。

拉取镜像文件并检查是否符合要求:

docker pull --platform linux/arm64 hyperledger/fabric-peer:2.5.9
docker image inspect hyperledger/fabric-peer:2.5.9 | grep Architecture
docker pull --platform linux/arm64 hyperledger/fabric-orderer:2.5.9
docker image inspect hyperledger/fabric-orderer:2.5.9 | grep Architecture
docker pull --platform linux/arm64 hyperledger/fabric-ccenv:2.5.9
docker image inspect hyperledger/fabric-ccenv:2.5.9 | grep Architecture
docker pull --platform linux/arm64 hyperledger/fabric-baseos:2.5.9
docker image inspect hyperledger/fabric-baseos:2.5.9 | grep Architecture
docker pull --platform linux/arm64 hyperledger/fabric-javaenv:2.5.4
docker image inspect hyperledger/fabric-javaenv:2.5.4 | grep Architecture
docker pull --platform linux/arm64 hyperledger/fabric-ca:1.5.12
docker image inspect hyperledger/fabric-ca:1.5.12 | grep Architecture
docker pull --platform linux/arm64 busybox:1.36
docker image inspect busybox:1.36 | grep Architecture

将镜像保存为压缩文件:

docker save -o fabric-peer-2.5.9.tar hyperledger/fabric-peer:2.5.9 
docker save -o fabric-orderer-2.5.9.tar hyperledger/fabric-orderer:2.5.9 
docker save -o fabric-ccenv-2.5.9.tar hyperledger/fabric-ccenv:2.5.9 
docker save -o fabric-baseos-2.5.9.tar hyperledger/fabric-baseos:2.5.9 
docker save -o fabric-javaenv-2.5.4.tar hyperledger/fabric-javaenv:2.5.4 
docker save -o fabric-ca-1.5.12.tar hyperledger/fabric-ca:1.5.12 
docker save -o busybox-1.36.tar busybox:1.36 

将压缩文件下载到本机,再上传到服务器

加载为镜像:

docker load -i fabric-peer-2.5.9.tar
docker load -i fabric-orderer-2.5.9.tar
docker load -i fabric-ccenv-2.5.9.tar
docker load -i fabric-baseos-2.5.9.tar
docker load -i fabric-javaenv-2.5.4.tar
docker load -i fabric-ca-1.5.12.tar
docker load -i busybox-1.36.tar

出现如下问题时:
在这里插入图片描述
有说是因为从虚机中将文件复制出来时导致文件不全,可以使用md5sum命令验证。实际使用中多尝试几次即可解决。

将镜像标记为latest:

docker tag hyperledger/fabric-peer:2.5.9 hyperledger/fabric-peer
docker tag hyperledger/fabric-orderer:2.5.9 hyperledger/fabric-orderer
docker tag hyperledger/fabric-ccenv:2.5.9 hyperledger/fabric-ccenv
docker tag hyperledger/fabric-baseos:2.5.9 hyperledger/fabric-baseos
docker tag hyperledger/fabric-javaenv:2.5.4 hyperledger/fabric-javaenv
docker tag hyperledger/fabric-ca:1.5.12 hyperledger/fabric-ca
docker tag busybox:1.36 busybox

七、参考(部分)

1、Cenos7换源
2、无网络环境,如何部署Docker镜像
3、Linux安装docker,报错Error downloading packages
4、如何使用 docker pull 拉取特定架构的容器镜像


http://www.ppmy.cn/news/1573394.html

相关文章

Python常见面试题的详解8

1. 变量作用域和查找规则(LEGB) 作用域层级: Local:函数内部作用域 Enclosing:闭包函数外层作用域 Global:模块全局作用域 Built-in:内置命名空间 查找顺序:L → E → G → B关…

Ollmao (OH-luh-毛程序包及源码) 是一款原生 SwiftUI 应用程序,它与 Ollama 集成,可在 Mac 上本地运行强大的 AI 模型

一、软件介绍 文末提供下载 使用 Ollmao 在 Mac 上本地运行强大的 AI 模型 - 这是一款与 Ollama 集成的原生 SwiftUI 应用程序。Ollmao (OH-luh-毛) 是一个与 Ollama 集成的开源项目,但不隶属于 Ollama 团队,也不受 Ollama 团队的…

【分布式理论12】事务协调者高可用:分布式选举算法

文章目录 一、分布式系统中事务协调的问题二、分布式选举算法1. Bully算法2. Raft算法3. ZAB算法 三、小结与比较 一、分布式系统中事务协调的问题 在分布式系统中,常常有多个节点(应用)共同处理不同的事务和资源。前文 【分布式理论9】分布式…

leetcode hot100 滑动窗口子串

滑动窗口 3. 无重复字符的最长子串 题解: 最初采用的是哈希表加双重循环遍历从每个索引开始的最长字符串, 但这样的时间空间复杂度都特别高, 仔细观察有可以优化的地方 改双层循环为单层循环, 不再遍历从每个索引开始的最长字符串, 观察可得当遇到与前面字符串重复的字符#时…

Spring-GPT智谱清言AI项目(附源码)

一、项目介绍 本项目是Spring AI第三方调用整合智谱请言(官网是:https://open.bigmodel.cn)的案例,回答响应流式输出显示,这里使用的是免费模型,需要其他模型可以去 https://www.bigmodel.cn/pricing 切换…

Linux配置SSH公钥认证与Jenkins远程登录进行自动发布

问题描述:在使用jenkins进行自动化部署时,其中一步是使用jenkins向目标服务器推送文件时,需要先在jenkins的系统配置中进行配置(事先安装好对应插件),配置远程服务器时,报错: 检查以…

Linux 教程合集

Linux 简介 Linux是一种自由和开放源代码的操作系统,最初由芬兰程序员Linus Torvalds于1991年创造并发布。Linux操作系统是基于UNIX的设计理念和原则,是一个强大、稳定且可定制的操作系统。 Linux操作系统的核心组件是Linux内核,它是操作系统的核心部分,负责管理计算机硬…

DeepSeek教unity------UI框架

/****************************************************文件:BasePanel.cs作者:Edision日期:#CreateTime#功能:面板基类 *****************************************************/using UnityEngine;public class BasePanel : Mo…