从服务器拷贝fabric项目及docker镜像到另一个服务器运行
程序员文章站
2022-07-13 14:11:33
...
背景:在虚拟机上运行fabric-1.2,在服务器上继续运行。
1.拷贝相关docker镜像
由于购买的阿里云服务器下载国外资源速度非常慢,所以直接拷贝镜像和资源会快一些。
- 首先查看可以正常运行fabric环境中所有的docker镜像,红色框起来的就是需要拷贝的所有镜像。黄色的是它们的id
- 使用命令查看镜像:
docker images
- 使用命令将镜像拷贝到虚拟机本地为一个zip文件,其中66cc132bd09c是镜像的id,fabric-ca.tar是你要保存的名字,保持与镜像名称一致,可以在解压的时候更方便:
docker save 66cc132bd09c> /usr/dockerimages/fabric-ca.tar
- 将所有的镜像文件都拷贝到虚拟机文件夹中之后进行下一步操作。
2.将镜像传送到服务器上
- 使用scp命令传送
scp -r ./dockerimages/ aaa@qq.com:/usr/dockerimages
3.进行docker镜像的解压
- 使用命令解压:
docker load < /usr/dockerimages/fabric-ca.tar
- 然后使用
docker images
命令查看(这里由于已经在服务器上做过了,不能复现,所以临时解压一个nginx镜像作示例):
可以看到,新解压的docker镜像,它的repository和tag都是<none>,所以为了使他能够正常运行我们必须修改这两个参数: - 使用命令修改参数,对应的docker镜像,名字和id记得修改:
docker tag a1523 nginx:latest
到这里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
以上图片无亮点,只是运行结果
- byfn up
./byfn.sh up
如图,出现了错误(参考链接)。
错误原因:由于启动过网络并且更新了证书,在没有删除干净的环境中启动复用的之前的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最后成功