执行Hyperledger的byfn.sh up报无法连接Docker daemon错误求助
Hyperledger Fabric first-network启动Docker连接报错排查
问题场景
学习Hyperledger Composer开发,已安装docker、docker-compose、nodejs、golang全部前置依赖,克隆fabric-samples仓库后,在first-network目录执行./byfn.sh up命令时触发报错:
ERROR: Couldn't connect to Docker daemon at http://0.0.0.0:2375 - is it running?
排查解决步骤
按顺序执行以下操作,每步完成后可执行docker ps验证Docker连通性,命令可正常返回容器列表即为连通正常,再重试byfn启动命令即可:
- 确认Docker服务运行状态
- Linux环境执行
sudo systemctl status docker查看服务状态,若服务未启动执行sudo systemctl start docker启动服务,需要开机自启可追加执行sudo systemctl enable docker - Windows/macOS环境确认Docker Desktop已完成初始化,程序图标处于稳定运行状态,未启动则手动打开程序等待加载完成
- WSL2环境需打开Docker Desktop设置页,在「Resources-WSL Integration」栏目开启对应WSL发行版的集成开关,保存后重启Docker生效
- Linux环境执行
- 修复Linux环境Docker访问权限
普通用户默认无Docker套接字访问权限,执行以下命令将当前用户加入docker用户组,避免每次执行docker命令需要追加sudo:sudo groupadd docker sudo usermod -aG docker $USER newgrp docker - 修正Docker daemon配置错误
报错明确指向2375远程监听端口,大概率是daemon配置仅开启了TCP监听、丢失了本地套接字访问配置:- 打开Docker配置入口:Linux环境编辑
/etc/docker/daemon.json文件,Windows/macOS打开Docker Desktop的「Docker Engine」配置页 - 检查
hosts配置项,确保同时包含本地sock和2375监听地址,参考配置如下:
{ "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"] }- 重启Docker服务:Linux执行
sudo systemctl restart docker,Windows/macOS点击Docker Desktop菜单中的Restart选项
- 打开Docker配置入口:Linux环境编辑
- 清理byfn失败残留后重试
之前启动失败留下的容器、网络、环境变量缓存也可能导致连接异常,执行以下命令清理环境:./byfn.sh down docker network prune -f注意:如果本地运行了其他非Fabric相关的重要业务容器,不要执行全量容器删除命令,仅手动删除名称带
hyperledger、fabric字段的残留容器即可。
清理完成后重新执行./byfn.sh up即可正常启动测试网络。
内容的提问来源于stack exchange,提问作者swapn652
相关产品推荐
相关产品推荐

