【发布时间】:2019-09-07 06:59:45
【问题描述】:
我编写了一个脚本来构建和运行一个 docker 容器:
docker build --rm -t 'mine' . && docker run -p 3000:3000 -it 'mine'
如果我连续运行两次,前一个已经在运行,所以它不会启动。为了解决这个问题,我写了一行来杀死所有的 docker 容器:
docker kill $(docker ps -q) || true
docker build --rm -t 'mine' . && docker run -p 3000:3000 -it 'mine'
这可行,但现在我的机器上有多个使用 docker 的项目,这会杀死所有项目,这不是我想要的。我只希望它杀死这个项目中的 docker 容器。
如何修改此脚本,使其仅终止在第二行启动的 docker 容器?
【问题讨论】:
-
@jeremysprofile 我会说这不是骗子,因为答案是这样的:“然后复制正在运行的容器的 CONTAINER ID 并执行以下命令”。我想在脚本中完成这一切
-
@DanielKaplan,我会说这是一个骗局,因为如果您再向下滚动一个答案,就会有另一个答案是
docker kill container_name。在您的情况下,它将是docker kill mine -
@jeremysprofile 实际上,我试过了,但没有成功。我不说
docker kill mine,我说docker kill container_name,我必须从docker container ls那里得到。因此,我认为这不是同一个问题。我要求一个单行脚本来完成所有这些步骤,而不是一系列手动步骤。