为什么我中止启动 Docker 容器的命令后它仍继续运行?

为什么我中止启动 Docker 容器的命令后它仍继续运行?

我有一个批处理文件,用于在 Windows 中启动 docker 容器,在本例中用于启动 jupyter 笔记本:

@echo off
SET RootPath=C:/Path/To/Working/Folder
docker run -p 8888:8888 -v %RootPath%:/mnt/env container_name jupyter lab --port 8888 --ip=0.0.0.0 --allow-root --NotebookApp.notebook_dir=/mnt/env

这工作正常,但如果我关闭正在运行批处理文件的命令提示符,我的 docker 容器仍会继续运行。为什么会发生这种情况,以及如何实现关闭命令提示符后立即终止作业的预期行为?

我正在运行 Docker 2.3.0.3。

答案1

这是设计使然,当您启动容器时,它会在自己的虚拟环境中运行,直到您停止并删除它。或者,添加--rm以在容器退出时自动删除它。

相关内容