Windows10下Hyperledger Fabric测试网络部署链码返回500错误咨询
问题根因
该报错是Windows环境下Hyperledger Peer容器默认无法访问宿主机Docker daemon导致的:链码安装阶段需要Peer调用宿主机的Docker服务构建链码镜像,Windows版Docker Desktop默认未暴露Docker daemon的访问端口,导致Peer内部请求失败。
解决方案
1. 调整Docker Desktop配置
- 打开Docker Desktop设置,找到General标签页
- 勾选 Expose daemon on tcp://localhost:2375 without TLS 选项,保存后重启Docker Desktop
- 提示:该配置仅建议本地开发测试环境使用,生产环境请勿开启无TLS的Docker端口暴露
2. 配置终端Docker访问环境变量
执行测试网启动、链码部署命令前,先在使用的Git Bash/WSL终端中导出如下变量:
export DOCKER_HOST=tcp://host.docker.internal:2375
如果使用WSL2后端的Docker,执行下方命令验证连通性,正常会返回Docker版本信息:
curl http://host.docker.internal:2375/version
3. 清理残留资源后重新部署
先停止并清理之前运行的测试网残留资源,避免缓存影响:
./network.sh down docker volume prune -f
之后按官方流程重新启动测试网、创建通道,再执行链码部署命令即可:
./network.sh up createChannel ./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go
4. 备用方案:启用外部链码构建器
如果上述方法依旧失效,可以修改Peer节点配置启用外部链码构建器,跳过Peer内部调用Docker构建镜像的步骤,无需暴露Docker daemon端口,适配性更强:
- 编辑
test-network/config/core.yaml文件,找到chaincode.builder配置项,启用golang外部构建器 - 重新启动测试网加载新配置后再部署链码
内容的提问来源于stack exchange,提问作者arian
相关产品推荐
相关产品推荐

