docker - 为什么将/var/hyperledger/production安装到主机卷上会导致错误?

标签 docker hyperledger

我尝试将/ var / hyperledger / production文件夹安装到主机(我正在使用Windows 7并通过Docker ToolBox运行Docker),以便在我的Hyperledger对等Docker容器退出时保留注册证书。

这是我使用的命令:

docker run   --name c_vp0   --rm -it  -v /var/run/docker.sock:/var/run/docker.sock  -v /c/Users/hyperledger/production:/var/hyperledger/production -e CORE_VM_ENDPOINT=unix:///var/run/docker.sock   -e CORE_PEER_ID=vp0   -e CORE_PEER_ADDRESSAUTODETECT=true   -e CORE_PEER_VALIDATOR_CONSENSUS_PLUGIN=noop   -e CORE_LOGGING_LEVEL=ERROR   -e CORE_SECURITY_ENABLED=true   -e CORE_SECURITY_PRIVACY=true   -e CORE_PEER_PKI_ECA_PADDR=172.17.0.50:7054   -e CORE_PEER_PKI_TCA_PADDR=172.17.0.50:7054   -e CORE_PEER_PKI_TLSCA_PADDR=172.17.0.50:7054   -e CORE_SECURITY_ENROLLID=test_vp0   -e CORE_SECURITY_ENROLLSECRET=MwYpmSRjupbT   hyperledger/fabric-peer  peer node start

但是,我遇到以下错误:
panic: Error opening DB: IO error: directory: Invalid argument

我将命令“peer node start”修改为“/ bin / bash”,以便可以检查安装的目录。我注意到/ var / hyperledger / production(及其子目录和文件)的所有权/组是1000:staff,而不是root:root。

我不确定这是否是导致问题的原因,但是我尝试使用chown命令将所有权/组更改为root:root,但它不起作用。

最佳答案

leveldb与VirtualBox使用的vboxfs(see example here)之间似乎不兼容。我不确定谁出错了,但是在没有vboxfs的卷上使用leveldb时,搜索结果显示成功。

从使用VirtualBox的Docker Toolbox升级到Docker for Windows,后者使用Window的内置Hyper-V虚拟化技术。

如果您无法运行适用于Windows的Docker(例如,您需要将Windows 7升级到至少Windows 10,请尝试通过其他方法(例如NFS)将/var/hyperledger/production挂载到您的主机文件夹中。

关于docker - 为什么将/var/hyperledger/production安装到主机卷上会导致错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41498894/

相关文章:

nginx - 使用HAproxy在Mesos集群中负载均衡Docker容器

hyperledger-fabric - 在 Hyperledger Fabric 1.4.4 中跨多个网络使用对等节点

hyperledger-fabric - getHistoryForKey() 中的交易 ID 在 Hyperledger Fabric 中始终未定义

node.js - 无法验证hyperledger Node sdk中的第一个证书?

hyperledger-fabric - super 账本 Composer 中的链码与 super 账本结构中的链码?

amazon-web-services - 如何使用Amazon ECS在15个Docker容器中运行

mysql - 为什么 mysql-client 无法通过 docker-forwarded tcp 端口连接到 GCP cloud_sql_proxy?

security -/var/run/docker.sock 的 Docker 安全风险是什么?

blockchain - 在 Hyperledger Fabric channel 上仅使用两个对等点时的共识操纵?

docker - Dockerfile 中 RUN 和 CMD 的区别