欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

从服务器拷贝fabric项目及docker镜像到另一个服务器运行

程序员文章站 2022-07-13 14:11:33
...

背景:在虚拟机上运行fabric-1.2,在服务器上继续运行。

1.拷贝相关docker镜像

  由于购买的阿里云服务器下载国外资源速度非常慢,所以直接拷贝镜像和资源会快一些。

  • 首先查看可以正常运行fabric环境中所有的docker镜像,红色框起来的就是需要拷贝的所有镜像。黄色的是它们的id
  • 使用命令查看镜像:
docker images

从服务器拷贝fabric项目及docker镜像到另一个服务器运行

  • 使用命令将镜像拷贝到虚拟机本地为一个zip文件,其中66cc132bd09c是镜像的id,fabric-ca.tar是你要保存的名字,保持与镜像名称一致,可以在解压的时候更方便:
docker save 66cc132bd09c> /usr/dockerimages/fabric-ca.tar

从服务器拷贝fabric项目及docker镜像到另一个服务器运行

  • 将所有的镜像文件都拷贝到虚拟机文件夹中之后进行下一步操作。

2.将镜像传送到服务器上

  • 使用scp命令传送
scp -r ./dockerimages/ aaa@qq.com:/usr/dockerimages

3.进行docker镜像的解压

  • 使用命令解压:
docker load < /usr/dockerimages/fabric-ca.tar
  • 然后使用docker images命令查看(这里由于已经在服务器上做过了,不能复现,所以临时解压一个nginx镜像作示例):
    从服务器拷贝fabric项目及docker镜像到另一个服务器运行
    可以看到,新解压的docker镜像,它的repository和tag都是<none>,所以为了使他能够正常运行我们必须修改这两个参数:
  • 使用命令修改参数,对应的docker镜像,名字和id记得修改:
docker tag a1523 nginx:latest 

从服务器拷贝fabric项目及docker镜像到另一个服务器运行
到这里docker镜像的工作就完成了。使用docker run -itd hyperledger/fabric-ca:latest加载进行,使用docker ps查看是否正常运行。一般来说名字和拷贝之前一样是不是出问题的。

3.拷贝相关项目到服务器

scp -r ./fabric aaa@qq.com /usr/gocode/src/github.com/hyperledger/
scp -r ./fabric-samples aaa@qq.com /usr/gocode/src/github.com/hyperledger/

4.启动byfn.sh

  • byfn generate
#进入fabric-samples下的first-network目录后
./byfn.sh generate

从服务器拷贝fabric项目及docker镜像到另一个服务器运行
以上图片无亮点,只是运行结果

  • byfn up
./byfn.sh up

从服务器拷贝fabric项目及docker镜像到另一个服务器运行
如图,出现了错误(参考链接)。
错误原因:由于启动过网络并且更新了证书,在没有删除干净的环境中启动复用的之前的volume,所以导致证书认证失败。
解决方案:执行如下命令删除卷
docker-compose -f docker-compose-cli.yaml down --volumes --remove-orphans
docker rm -f $(docker ps -a | grep “hyperledger/*” | awk “{print $1}”)
docker volume prune

  • 重新generate和up最后成功
    从服务器拷贝fabric项目及docker镜像到另一个服务器运行