无法自动停止运行jupyter笔记本的容器

时间:2019-03-28 17:41:57

标签: docker jupyter-notebook

如果我以--rm开始一个容器,就像这样:

docker run --rm -it image-name /bin/bash

然后从REPL中将其关闭exit,它会自动删除容器,因此我不必这样做。

很好。

但是现在我要启动一个容器,并告诉它像这样自动运行jupyter notebook:

docker run --rm -it image-name /bin/bash -c "jupyter notebook ..."

在这种情况下,当我按control+c时,我退出了容器,但是它没有关闭容器,因为jupyter笔记本仍在运行。然后我必须先进入docker stop container-id,然后再进入docker rm container-id,这很烦人。

有什么方法可以让容器在退出时自动关闭?

1 个答案:

答案 0 :(得分:1)

因此,在第一种情况下容器将其自身删除的原因是“ bash”脚本是您的执行所绑定的对象。退出时,BASH退出,因此将容器移除。

在第二种情况下,您实际上并没有这样做。您正在通过bash的命令功能以交互方式执行命令,而退出终端与该命令的终止无关。

Docker --rm标志的工作方式是,一旦执行语句请求的命令结束,则删除容器。”。如果执行bash以获取交互式shell,然后运行该命令,则将获得不同的体验。