我正在使用Hyperledger Fabric工作,我正在尝试了解网络和docker,并且我正在跟随this教程。我到达了需要使用docker exec -it cli bash
进入CLI容器的步骤,但是当我输入它时,我收到以下错误:
Error response from daemon: Container ddc2288c83a89c478f9b31b7a3273994ec4767d63e58208c8e4b145ae44b0579 is not running
即使我使用docker-compose -f docker-compose-cli.yaml up -d
启动网络,甚至输入docker start cli
以获得良好的衡量标准,我也能得到这一点,这正是教程告诉我要做的事情。
我可以确认它会立即退出,因为当我将docker ps -a
输入到我的终端时,它会显示所有进程,但由于某种原因cli会立即退出:
造成这种情况的原因是什么?我该怎么办才能修复它?该教程说,如果CLI退出,只需输入docker start cli
再次初始化它,但它不起作用。
答案 0 :(得分:1)
解决方案1-
使用以下命令启动网络时,默认情况下,CLI容器会停留1000秒。
docker-compose -f docker-compose-cli.yaml up -d
因此,在运行此命令之前,您将必须设置TIMEOUT变量。要设置超时,请在启动网络之前执行以下命令。
export TIMEOUT=<no of seconds your CLI should stay up>
这样,您可以确保只要需要执行其他命令,就可以保持cli的状态。
如果您的CLI不在运行,则只需执行此命令即可启动CLI。
docker start cli
解决方案-2
在运行docker-compose -f docker-compose-cli.yaml up -d
命令之前,先打开docker-compose-cli.yaml`文件。
然后像这样注释掉以下行-
#command: /bin/bash -c './scripts/script.sh ${CHANNEL_NAME} ${DELAY}; sleep $TIMEOUT'
希望这会有所帮助。