【问题标题】:unable to automatically stop container running jupyter notebook无法自动停止运行 jupyter notebook 的容器
【发布时间】:2019-03-28 17:41:56
【问题描述】:

如果我像这样使用--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 notebook 仍在运行。然后我必须进去docker stop container-id 然后docker rm container-id 这很烦人。

有没有办法告诉容器在我退出时自动关闭?

【问题讨论】:

    标签: docker jupyter-notebook


    【解决方案1】:

    因此,容器在第一种情况下自行删除的原因是因为“bash”脚本是您的执行所绑定的。当您退出时,BASH 会退出,因此容器会被移除。

    在第二种情况下,您实际上并没有这样做。您正在通过 bash 的命令函数交互地执行命令,并且退出终端与该命令的终止无关。

    Docker --rm 标志的工作方式是,一旦执行语句请求的命令结束,删除容器”。如果你执行 bash 得到一个交互式 shell,然后运行命令,你会得到不一样的体验。

    【讨论】:

    • 谢谢,现在更有意义了,我想我找到了解决方案,使用这个逻辑control+c+c 似乎关闭了 jupyter,然后也关闭了 bash。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-29
    • 2016-08-23
    • 2020-02-21
    • 2020-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多