Hyperledger Fabric,Docker在重启后不存储数据

时间:2017-04-10 18:38:12

标签: docker docker-compose blockchain hyperledger hyperledger-fabric

我使用docker镜像设置Hyperledger Fabric V0.6。我写了小链代码程序并执行一些操作。根据Hyperledger区块链的请求存储和提取数据。

我重启了我的链码程序,数据仍然存在。 Ofcouse这应该是预期的行为。

但是当我使用命令docker-compose停止我的Hyperledger结构并使用docker-compose start再次启动它然后启动我的chaincode程序时,我发现在重启之前写入的整个数据都消失了。我在区块链中找不到任何数据。

如何避免Hyperledger的这种行为?我在单个对等体/节点上运行它。对于多个对等体,如果其中一个对等体重新启动,则来自其他对等体的数据/事务将被复制到其上。但考虑到最糟糕的情况,所有同行都会失败。这是否意味着我们放弃了所有数据?

2 个答案:

答案 0 :(得分:7)

根据官方docs docker-compose down停止和删除 docker-compose文件中列出的所有容器及其卷(除非指定为外部,请查看文档。)

您可能希望使用docker-compose stop停止容器 - 这样,docker-compose up数据将被保留。

答案 1 :(得分:0)

A Note on Data Persistence

如果在对等容器或CouchDB容器上需要数据持久性,则可以选择将docker-host中的目录挂载到容器中的相关目录中。例如,您可以在docker-compose-base.yaml文件中的对等容器规范中添加以下两行:

volumes: - /var/hyperledger/peer0:/var/hyperledger/production

对于CouchDB容器,您可以在CouchDB容器规范中添加以下两行:

volumes: - /var/hyperledger/couchdb0:/opt/couchdb/data