我们正在使用Hyperledger Fabric创建一个网络。我们所有的分类账数据都存储在/var/lib/docker/volume目录中,实际上,一旦网络关闭,该目录就会被删除。在我看来,Docker卷挂载似乎不起作用。如何使用Hyperledger Fabric建议的本地系统卷../var/hyperledger来存储相同的内容。
btxsgosb1#
您可以使用docker yaml文件中的卷属性。
volumes: - LOCAL SYSTEM PATH RELATIVE TO THIS FILE: VOLUME INSIDE DOCKER CONTAINER e.g- volumes: - ../system-genesis-block:/var/lib/docker/volume
0pizxfdo2#
如果你使用network.sh脚本来关闭网络,它会删除所有内容--我认为这对开发是有好处的。使用docker-compose来停止网络会让所有内容保持原样。有一个学派认为,为了安全起见,你的数据应该存在于容器之外。你可以随时重新创建容器,但它不会恢复丢失的数据。我喜欢将我的卷存储在超级分类账代码附近,所以我在YAML中使用以下代码
volumes: - ../system-genesis-block/genesis.block:/var/hyperledger/orderer/orderer.genesis.block - ../organizations/ordererOrganizations/vfact.ie/orderers/orderer.vfact.ie/msp:/var/hyperledger/orderer/msp - ../organizations/ordererOrganizations/vfact.ie/orderers/orderer.vfact.ie/tls/:/var/hyperledger/orderer/tls - $PWD/data/orderer.vfact.ie:/var/hyperledger/production/orderer
其中当前工作目录(pwd)是超级分类账文件和目录的根区域。在不太了解你如何工作你的系统的情况下,我提供这个作为一个有过这种类型使用的良好经验的人的建议。如果你正在使用network.sh来使网络瘫痪,也许您可以从对docker-compose的networkDown()函数调用中删除down --volumes --remove-orphans。
down --volumes --remove-orphans
qnakjoqk3#
尝试使用sudo例如sudo ./network.sh up而不是./network.sh up
sudo
sudo ./network.sh up
./network.sh up
3条答案
按热度按时间btxsgosb1#
您可以使用docker yaml文件中的卷属性。
0pizxfdo2#
如果你使用network.sh脚本来关闭网络,它会删除所有内容--我认为这对开发是有好处的。使用docker-compose来停止网络会让所有内容保持原样。有一个学派认为,为了安全起见,你的数据应该存在于容器之外。你可以随时重新创建容器,但它不会恢复丢失的数据。
我喜欢将我的卷存储在超级分类账代码附近,所以我在YAML中使用以下代码
其中当前工作目录(pwd)是超级分类账文件和目录的根区域。在不太了解你如何工作你的系统的情况下,我提供这个作为一个有过这种类型使用的良好经验的人的建议。如果你正在使用network.sh来使网络瘫痪,也许您可以从对docker-compose的networkDown()函数调用中删除
down --volumes --remove-orphans
。qnakjoqk3#
尝试使用
sudo
例如
sudo ./network.sh up
而不是./network.sh up