Docker - '容器未运行'即使我刚刚初始化它

时间:2018-02-23 19:12:31

标签: docker hyperledger

我正在使用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再次初始化它,但它不起作用。

1 个答案:

答案 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'

希望这会有所帮助。