HyperLedger Fabric网络本地正常AWS EC2启动失败问题咨询
问题根因
OCI runtime create failed: Running hook #0:: error running hook: signal: killed错误在AWS EC2部署Fabric场景下,核心触发原因按出现概率排序如下:
- 实例规格不足:Fabric 2.2测试网络默认启动2个Peer节点、1个Orderer节点、3个CA节点,运行最低要求为2vCPU/4GiB内存。如果使用t2.micro、t3.small等内存≤2GiB的低规格实例,内存不足会触发系统OOM killer强制杀掉容器启动钩子进程,直接触发该报错。
- Docker运行时配置不兼容:EC2默认预装的Amazon Linux系列系统自带的containerd、Docker版本可能与Fabric 2.2.x依赖的运行时参数不匹配,部分实例默认开启的SELinux强制策略、ECS相关运行时钩子也会拦截容器启动流程。
- 版本不匹配:EC2环境下Fabric本地二进制版本为2.2.1,Docker镜像版本为2.2.2,版本错位会放大运行时兼容性问题。
- 残余资源冲突:之前启动失败的孤儿容器、挂载卷没有清理,会导致新启动的容器端口、存储挂载冲突,触发启动钩子异常。
解决方案
按优先级执行以下操作:
- 升级EC2实例规格
更换为至少t3.medium(2vCPU/4GiB)及以上规格的实例,优先选择内存≥4GiB的配置,避免OOM问题。 - 清理环境残余资源
执行以下命令清空所有旧的Fabric相关容器、卷、网络资源:
./network.sh down docker system prune -af --volumes
- 对齐Fabric版本
执行官方脚本将本地二进制版本升级到2.2.2,与Docker镜像版本保持一致:
curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/release-2.2/scripts/bootstrap.sh | bash -s -- 2.2.2 1.4.9
- 调整Docker运行时配置
如果使用Amazon Linux 2023系统,执行以下命令修复containerd cgroup配置:
sudo mkdir -p /etc/containerd containerd config default | sudo tee /etc/containerd/config.toml sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml sudo systemctl restart containerd docker
临时关闭SELinux验证策略:
sudo setenforce 0
- 重新启动测试网络
执行启动命令验证:
./network.sh up createChannel -c mychannel -ca
内容的提问来源于stack exchange,提问作者Luis Bote
相关产品推荐
相关产品推荐

