Shell脚本:删除hello world docker容器而不知道ID

disho6za  于 2023-10-23  发布在  Shell
关注(0)|答案(4)|浏览(116)

我在shell脚本中运行hello world docker容器:

#!/bin/bash
sudo docker run hello-world

我这样做是为了验证Docker的安装是否正确。在此之后,我想再次删除这个容器。但是由于我不知道这个新容器的ID,我无法删除它:

sudo docker rm hello-world

失败了

b1zrtrql

b1zrtrql1#

在docker的文档中:探索应用程序,它描述了如何做到这一点。
当你执行docker run hello-world时,容器会被创建为一个随机名称,你可以用下面的命令来检查:

docker container ls --all

在命令输出的NAMES列下,您可以检查生成的名称(您可以在下面的示例图像中看到)。peaceful_莫尔斯在我的情况下)。
然后你可以在调用docker remove命令时使用这个名字作为参数:

docker rm peaceful_morse

图像与所有步骤:

y53ybaqx

y53ybaqx2#

给予容器一个名称:

sudo docker run --name hello-world-container hello-world

然后你可以按名称删除它:

sudo docker rm hello-world-container
0sgqnhkj

0sgqnhkj3#

您可以使用--filter来选择所需的图像,并使用--format来指定适合docker rm的输出格式(当然,在这种情况下,-q选项是--format '{{.ID}}'的方便简写)。

docker ps --filter 'ancestor=hello-world' -q |
xargs docker rm

如果镜像仍在运行,则需要先停止它,或者将-f选项添加到docker rm
(In如果不明显,xargs从管道读取输入,并将读取的字符串移动到命令行的末尾,然后执行它。
这有点容易出错(如果有多个匹配的图像,您可能会杀死比您想要的更多的图像);如果在最初run容器时提供--name,情况会更好。

brtdzjyr

brtdzjyr4#

docker rm 187593128c2a
187593128 c2 a(这是你将在运行docker ps -all时获得的contaniner id)

相关问题