如果我以--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
,这很烦人。
有什么方法可以让容器在退出时自动关闭?
答案 0 :(得分:1)
因此,在第一种情况下容器将其自身删除的原因是“ bash”脚本是您的执行所绑定的对象。退出时,BASH退出,因此将容器移除。
在第二种情况下,您实际上并没有这样做。您正在通过bash的命令功能以交互方式执行命令,而退出终端与该命令的终止无关。
Docker --rm标志的工作方式是,一旦执行语句请求的命令结束,则删除容器。”。如果执行bash以获取交互式shell,然后运行该命令,则将获得不同的体验。