首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Hyperledger Fabric:拨号unix /host/var/run/docker.sock: connect:无此类文件或目录

Hyperledger Fabric:拨号unix /host/var/run/docker.sock: connect:无此类文件或目录
EN

Stack Overflow用户
提问于 2019-03-15 07:26:20
回答 2查看 2.8K关注 0票数 1

当我们尝试实例化一个链代码时,我们得到了这个错误:

代码语言:javascript
复制
2019-03-14 23:17:01.917 UTC [dockercontroller] Start -> ERRO 152d start-could not recreate container <dev-peer1-kp-mycc-1.0>, because of Post http://unix.sock/containers/create?name=dev-peer1-kp-mycc-1.0: dial unix /host/var/run/docker.sock: connect: no such file or directory

我们可以在主机上看到一个文件/var/run/docker.sock

代码语言:javascript
复制
$ ls /var/run/docker.sock
/var/run/docker.sock

我们该如何解决这个问题呢?

编辑:除了不将/var/run挂载到容器之外,我们使用的配置与[1]几乎相同。根据[2]的说法,这似乎是一个巨大的安全漏洞

EN

回答 2

Stack Overflow用户

发布于 2019-03-21 12:13:36

我们必须将/var/run安装到码头容器上才能使其正常工作。

Re:通过tcp暴露docker守护进程,它实际上没有任何区别w.r.t。存在安全漏洞,因为在这两种情况下(文件装载与tcp),守护程序都已暴露给容器,这就是该漏洞所针对的。

如果我们尝试将CORE_VM_ENDPOINT设置为http://172.17.0.1:2375,由于没有人在端口上监听,因此连接被拒绝的效果会出现一些错误。

要修复该问题,似乎必须启用docker守护程序(dockerd -H ...)。我们尝试这样做,但得到一些错误,说明PID存在。它看起来像是必须重新启动守护进程,而我们不想这样做。因此,我们选择了文件挂载选项。

我们认为我们将在实例化链代码后关闭对等体,从而解决安全漏洞,但如果我们这样做了,那么调用链代码就会失败,因为invoke再次依赖于与守护进程的通信。

代码语言:javascript
复制
2019-03-18 23:23:39.108 UTC [chaincodeCmd] chaincodeInvokeOrQuery -> DEBU 04d ESCC invoke result: response:<status:500 message:"failed to execute transaction 9c8928ffda960c89225682d0c4d0936342b60c687dd7ea0547378a88fd5f6749: [channel dscsa] could not launch chaincode mycc:1.0: error starting container: error starting container: Post http://unix.sock/containers/create?name=dev-peer1-kp-mycc-1.0: dial unix /host/var/run/docker.sock: connect: no such file or directory" >
票数 0
EN

Stack Overflow用户

发布于 2021-01-27 02:51:17

我们在MacOS上使用Docker Desktop 3.0+也遇到了同样的问题,Hyperledger Fabric 1.4.3实例化了一个智能合约。我们将Docker版本改为2.5+,一切工作正常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55173477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档