我在shell脚本中运行hello world docker容器:
hello world
#!/bin/bash sudo docker run hello-world
我这样做是为了验证Docker的安装是否正确。在此之后,我想再次删除这个容器。但是由于我不知道这个新容器的ID,我无法删除它:
sudo docker rm hello-world
失败了
b1zrtrql1#
在docker的文档中:探索应用程序,它描述了如何做到这一点。当你执行docker run hello-world时,容器会被创建为一个随机名称,你可以用下面的命令来检查:
docker run hello-world
docker container ls --all
在命令输出的NAMES列下,您可以检查生成的名称(您可以在下面的示例图像中看到)。peaceful_莫尔斯在我的情况下)。然后你可以在调用docker remove命令时使用这个名字作为参数:
NAMES
docker rm peaceful_morse
图像与所有步骤:
y53ybaqx2#
给予容器一个名称:
sudo docker run --name hello-world-container hello-world
然后你可以按名称删除它:
sudo docker rm hello-world-container
0sgqnhkj3#
您可以使用--filter来选择所需的图像,并使用--format来指定适合docker rm的输出格式(当然,在这种情况下,-q选项是--format '{{.ID}}'的方便简写)。
--filter
--format
docker rm
-q
--format '{{.ID}}'
docker ps --filter 'ancestor=hello-world' -q | xargs docker rm
如果镜像仍在运行,则需要先停止它,或者将-f选项添加到docker rm。(In如果不明显,xargs从管道读取输入,并将读取的字符串移动到命令行的末尾,然后执行它。这有点容易出错(如果有多个匹配的图像,您可能会杀死比您想要的更多的图像);如果在最初run容器时提供--name,情况会更好。
-f
xargs
run
--name
brtdzjyr4#
docker rm 187593128c2a187593128 c2 a(这是你将在运行docker ps -all时获得的contaniner id)
4条答案
按热度按时间b1zrtrql1#
在docker的文档中:探索应用程序,它描述了如何做到这一点。
当你执行
docker run hello-world
时,容器会被创建为一个随机名称,你可以用下面的命令来检查:在命令输出的
NAMES
列下,您可以检查生成的名称(您可以在下面的示例图像中看到)。peaceful_莫尔斯在我的情况下)。然后你可以在调用docker remove命令时使用这个名字作为参数:
图像与所有步骤:
y53ybaqx2#
给予容器一个名称:
然后你可以按名称删除它:
0sgqnhkj3#
您可以使用
--filter
来选择所需的图像,并使用--format
来指定适合docker rm
的输出格式(当然,在这种情况下,-q
选项是--format '{{.ID}}'
的方便简写)。如果镜像仍在运行,则需要先停止它,或者将
-f
选项添加到docker rm
。(In如果不明显,
xargs
从管道读取输入,并将读取的字符串移动到命令行的末尾,然后执行它。这有点容易出错(如果有多个匹配的图像,您可能会杀死比您想要的更多的图像);如果在最初
run
容器时提供--name
,情况会更好。brtdzjyr4#
docker rm 187593128c2a
187593128 c2 a(这是你将在运行docker ps -all时获得的contaniner id)