Docker 允许您删除对您无用的旧容器。您可以使用 Docker rm 或 Docker 容器 rm 命令来执行此操作。但是,在开始删除容器之前,您需要确保没有任何容器正在运行。在这种情况下,Docker 会抛出错误。
但是,还有另一种解决方法。您也可以使用 --force 选项强制删除 Docker 容器。Docker remove 命令允许您一起删除一个或多个 Docker 容器。您只需要指定容器 ID 或其名称即可。但是,如果要同时删除机器中的所有 Docker 容器,可以使用子命令来完成。
在本文中,我们将讨论如何使用 Docker 容器删除命令以及您可以提及的所有选项。我们还将讨论如何同时删除所有容器。
您可以使用两种不同形式的 Docker 容器删除命令来实现相同的结果。以下是这两个命令的语法。
$ docker container rm [OPTIONS] CONTAINER [CONTAINER...]
$ docker rm [OPTIONS] CONTAINER [CONTAINER...]
这两个命令的工作方式相同。您可以与这些命令一起使用的选项是 -
--volumes - 如果您还想删除所有关联的卷,您可以使用此选项。
--link - 如果您尝试删除的容器具有指向其他容器的链接,并且您也想删除这些链接,则可以使用 --link 选项。
--force - 如果您要删除的容器正在后台主动运行,您可以使用 --force 选项删除此类容器,甚至无需停止它们。
现在,让我们查看一些示例以及使用这些命令和选项的方法。
假设您有一个名为 mycont 的容器在您的机器上正在运行。然后删除这个容器的传统方法是首先检查它的状态,如果容器正在运行,则停止容器,然后将其删除。为此,您可以使用以下命令集。
要列出所有活动的容器,您可以使用以下命令。
$ docker ps
现在,如果您的容器处于活动状态,您需要先停止容器。您可以使用以下命令执行此操作。
$ docker stop mycont
停止此容器后,您可以使用以下任一命令轻松删除它。
$ docker container rm mycont
$ docker rm mycont
如果您不想经历所有这些麻烦,可以使用以下命令直接强行删除容器。
$ docker rm -f mycont
即使您尝试删除正在运行的容器,这也不会引发错误。
您可以通过提及容器 ID 或以空格分隔的名称来同时删除多个容器。查看下面的命令以一起删除 3 个容器。
$ docker container rm mycont1 mycont2 mycont3
您还可以混合使用两个命令来一次性删除系统中的所有容器。查看下面的命令。
$ docker stop $(docker ps -aq)
在上面的命令中,我们使用了 Docker stop 命令作为父命令,而不是提及每个单独容器的 ID 或名称,我们使用了一个列出所有容器的容器 ID 的子命令。-q(安静)选项用于仅返回容器 ID,-a(全部)选项用于返回所有容器。
现在您已经停止了所有容器,您可以使用类似的命令删除所有容器。
$ docker rm $(docker ps -aq)
您也可以在此处使用 -f 选项,而不是首先停止所有容器然后删除它们,以强制一起删除所有容器。
$ docker rm -f $(docker ps -aq)
如果您只想删除一些已停止的容器,您可以使用过滤器选项来提供容器的状态。
$ docker rm $(docker ps --filter status=exited -q)
在上面的命令中,我们使用了 Docker rm 命令和一个子命令,用于过滤所有退出的容器并返回它们的 ID。
总而言之,在本文中,我们讨论了如何使用两个不同的命令删除一个或多个容器。我们看到了如何使用多个选项以及如何同时删除或停止所有容器。