Couchdb 在hyperledger结构中添加数据持久性
我已经建立了一个hyperledger结构网络。下面是我的Couchdb 在hyperledger结构中添加数据持久性,couchdb,hyperledger-fabric,Couchdb,Hyperledger Fabric,我已经建立了一个hyperledger结构网络。下面是我的docker compose.yaml文件中的当前配置 peer0.org1.example.com: container_name: peer0.org1.example.com image: hyperledger/fabric-peer:latest environment: - GODEBUG=netdns=go - CORE_PEER_ID=peer0.org1.example
docker compose.yaml
文件中的当前配置
peer0.org1.example.com:
container_name: peer0.org1.example.com
image: hyperledger/fabric-peer:latest
environment:
- GODEBUG=netdns=go
- CORE_PEER_ID=peer0.org1.example.com
- CORE_PEER_ADDRESS=peer0.org1.example.com:7051
- CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org1.example.com:7051
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051
- CORE_PEER_LOCALMSPID=Org1MSP
- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=${COMPOSE_PROJECT_NAME}_example
- FABRIC_LOGGING_SPEC=INFO
- CORE_PEER_TLS_ENABLED=true
- CORE_PEER_GOSSIP_USELEADERELECTION=true
- CORE_PEER_GOSSIP_ORGLEADER=false
- CORE_PEER_PROFILE_ENABLED=true
- CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt
- CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key
- CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt
- CORE_LEDGER_STATE_STATEDATABASE=CouchDB
- CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb0:5984
- CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME=
- CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD=
volumes:
- /var/run/:/host/var/run/
- ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/fabric/msp
- ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls:/etc/hyperledger/fabric/tls
- peer0.org1.example.com:/var/hyperledger/production
working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
command: peer node start
ports:
- 7051:7051
- 7053:7053
depends_on:
- couchdb0
networks:
- example
couchdb0:
container_name: couchdb0
image: hyperledger/fabric-couchdb
environment:
- COUCHDB_USER=
- COUCHDB_PASSWORD=
ports:
- "5984:5984"
networks:
- example
我错过了添加数据持久性配置的机会。
下面我将添加数据持久性。
因此,在我在fabric couchdb
中添加以下行之后,它将使用主机的指定文件系统来存储数据
volumes:
- /var/hyperledger/couchdb0:/opt/couchdb/data
但我无法弄清楚的是,我们现在如何检索网络中的当前数据。默认情况下,
fabric couchdb
在哪里存储数据?我们不能将旧数据从默认文件夹位置复制到新文件夹位置吗?如果您如您所说定义CouchDB卷,您的主机文件夹应该位于/var/hyperledger/couchdb0
中
您可以始终运行docker volume ls
和docker volume检查您的\u volume\u name
,以检查卷的装入点
如果尚未为容器定义卷,并且希望检索文件夹(我认为这是您的问题),请尝试:
docker cp couchdb0:/opt/couchdb/data your-host-destination-folder
这是couchdb容器的默认位置,所有数据都保存在此目录:/opt/couchdb/data中。是的,您可以从此目录复制couchdb的数据。
/opt/couchdb/data
主机中不存在此路径。如果我执行docker exec-it couchdb0 bash,那么我可以看到路径/opt/couchdb/data
下存在文件。但是在主机中我在哪里可以找到相同的文件呢?注意:我没有在docker compose.yml中进行目录映射,如果您没有进行目录映射,那么它将不在主机中,只在docker容器中。但您可以使用docker cp命令复制该数据,如下面的答案中@kekomal所示。添加上述指定卷后,从现在起,数据将在主机中更新,路径为:/var/hyperledger/couchdb0