Hyperledger Fabric 1.0 从零开始(四)——Fabric源码及镜像文件处理

2Fabric源码及镜像文件处理

2.1下载Fabric源码

下载Fabric源码是由于要用到源码中提到的列子和工具,工具编译须要用到go语言环境,所以须要把源码目录放到$GOPATH下。经过1.3中go的安装配置,$GOPATH设置为/opt/gopath。git

咱们可使用Git命令下载源码,也可使用go get命令,偷懒一点,咱们直接用go get命令获取最新的Fabric源码: github

go get github.com/hyperledger/fabric

【注:使用离线环境或者内网环境的朋友能够直接选择对应版本在github上下载,再经过ftp上传到指定目录便可】docker

这个可能等的时间比较久,等完成后,咱们能够在~/go/src/github.com/hyperledger/fabric中找到全部的最新的源代码。因为Fabric一直在更新,全部咱们并不须要最新最新的源码,须要切换到v1.0.0版本的源码便可:服务器

1 cd /opt/gopath/src/github.com/hyperledger/fabric/
2 git checkout -b v1.0.0 

本步骤也可直接在github上将源码下载至本地,再经过ftp上传至hyperledger目录。网络

若是没有git命令,还须要先执行如下命令,构建本地git环境。工具

yum install git

 

 最终目录在FTP的视图正常状况下以下所示:测试

 

 

2.2下载Fabric相关镜像文件

该操做有多种方式进行,若是是测试Fabric集群方案,直接进入fabric/examples/e2e_cli目录下,运行./download-dockerimages.sh,便可下载该工程必要的镜像文件。通常状况下,为了保证镜像与下载到hyperledger中的源码demo版本号相对应,该种方法属于较为稳当的方案。网站

但为了从此升级方便,且版本能够由本身控制,故本次还将介绍另外一种方案,也是笔者推荐的方案。spa

本次Fabric相关镜像都可以在DockerHub官方镜像网站进行下载,检索HyperLedger,以hyperledger/fabric-peer为例,进入其下载页面,官方给出的下载方式以下:操作系统

docker pull hyperledger/fabric-peer

 

但因为docker镜像下载在没有给出指定tag的状况下会默认使用lastest,而该方案最终可能会下载失败,所以,在fabric-peer下载页选中其tags标签,查看当前fabric-peer最新版本号,根据咱们所使用的操做系统状况,选择x86_64-1.0.0版本,故最终执行的docker下载命令以下:

docker pull hyperledger/fabric-peer:x86_64-1.0.0

 

 fabric环境主要须要的镜像有如下几种:

hyperledger/fabric-tools
hyperledger/fabric-orderer
hyperledger/fabric-peer
hyperledger/fabric-couchdb
hyperledger/fabric-kafka
hyperledger/fabric-ca
hyperledger/fabric-zookeeper
hyperledger/fabric-baseos

 

 根据上述方案,能够将这些必要的镜像由docker服务所有下载至本地,并最终使用docker-compose来启动对应的镜像服务。

【注:离线环境或内网环境的朋友,请经过其它能链接公网的服务器来操做这一步,后续能够将这些镜像打包并在内网环境的服务器上进行恢复,具体操做看后续讲述】

为了方便docker-compose的配置,咱们将全部的镜像tag都改成latest,执行以下格式的命令:

docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)

 

 例子

docker tag 0403fd1c72c7 docker.io/hyperledger/fabric-tools:latest

 

 全部的镜像文件及版本号修改完成后,执行以下命令:

docker images

 

 其结果视图应该以下:

 

 若是下载下来的镜像有问题,能够执行以下命令删除指定Image ID的镜像

docker rmi <image id>
或
docker rmi -f<image id>

 

 删除所有镜像命令以下:

docker rmi $(docker images -q)
或
docker rmi -f $(docker images -q)

 

 

2.3镜像备份和拷贝(该步骤并不是必须,若无此需求,能够略过本步骤)

上述HyperLedger/Fabric镜像数量较多且容量需求大,一套基本的服务镜像可达10G左右,若是在多台服务器上部署,会耽误不少时间。所以,对于上述已经下载至本地的镜像,咱们须要使用docker save命令来备份,并经过scp命令来将这些镜像文件拷贝至其余服务器。

以镜像hyperledger/fabric-peer为例:

在执行sava以前,须要先查询当前镜像包的Image ID,执行命令以下:

docker images

 

获得以下结果,能够看到咱们已经下载下来的fabric-peer的Image ID是6830dcd7b9b5

咱们能够执行以下命令在/tmp目录下来生成该镜像的tar包:

docker save 6830dcd7b9b5> /tmp/docker/fabric-images/peer.tar

上述命令结构为docker save IMAGEID(镜像id) >(文件路径及文件名)

根据上述命令,咱们对其余已经下载下来的fabric镜像分别执行打包操做,最后在/tmp/docker/fabric-images目录下执行ls查看当前目录镜像文件,正常状况下会看到以下视图:

该视图只截取了一部分,且该视图仅ls命令结果用做参考。

经过FTP能够看到目录大体以下:

当全部的镜像文件都被打包后,能够经过以下命令格式来发送镜像:

scp fabric-peer.tar root@10.111.171.217:/tmp/docker/fabric-images

经过上述命令能够将镜像文件远程拷贝至10.111.171.217远端服务器/tmp/docker/fabric-images目录下,这里是内网ip,若是是在内网的环境下,拷贝速度会很快,外网则根据服务器自身网络状况而定。

【注:离线环境或内网环境仍是经过手工拷贝的方式吧,另外内网传输速度不尽人意的话,也用手工拷贝吧】

当远端服务器接收到全部的镜像文件后,可执行以下命令来加载这些镜像文件:

docker load < /tmp/docker/fabric-peer.tar

镜像加载完成后,可根据以前3的方案,将镜像tag都改成lastest。

相关文章
相关标签/搜索