Docker删除容器的方法及实例

您所在的位置:网站首页 docker删除某一个镜像的命令是 Docker删除容器的方法及实例

Docker删除容器的方法及实例

2023-11-04 02:13| 来源: 网络整理| 查看: 265

Docker Delete Container

Docker删除容器简介

Docker rm是Docker的一条命令,用于删除或移除一个或多个容器。为了删除容器,它应该处于停止状态;然而,我们可以使用'-f'标志强行删除一个正在运行的容器。我们需要一个容器ID或容器名称来删除容器。当我们删除容器时,容器的所有数据都会被销毁,所以建议使用卷来进行持久性存储。在本专题中,我们将学习Docker删除容器。

语法

$docker rm --help

选项

-f, -force:该选项用于删除一个正在运行的容器。它将使用SIGKILL来杀死运行该容器的进程。

-l, -link:它被用来删除链接

-v, -volumes:它用于删除连接到容器的匿名卷。

Docker Delete Container output 1

如何在Docker中删除容器?

为了在Docker中删除一个或多个容器,我们在Docker CLI中运行'docker rm'命令,Docker客户端会对docker守护进程进行API调用以删除该容器。接下来,Docker守护进程会检查该容器并检查其状态;如果状态是运行的,Docker守护进程会抛出一个错误,即该容器正在运行,并建议使用'-f'标志来强制删除该容器。如果容器被成功删除,docker守护进程将在STDOUT上输出指定的容器名称或容器ID。

Docker删除容器的例子

下面提到了不同的例子。

例子#1

我们将创建一个nginx和一个ubuntu容器,并尝试将其删除。

用下面的命令创建一个nginx容器: $docker run -d nginx 创建一个ubuntu容器,如下所示。 $docker run -d ubuntu 列出所有的容器: $docker ps –a

Docker Delete Container output 2

解释一下: 在上面的例子中,第一个名为 "modest_khorana "的容器处于退出状态,而第二个名为 "serene_hodgkin "的容器处于上升状态,这意味着它处于运行状态。让我们试着用'docker rm'命令来删除这些容器。

首先删除或移除停止的容器,如下所示。

语法

$docker rm $docker rm

例子

$docker rm d077d5f4873e

Docker Delete Container output 3

我们可以看到容器被成功地删除了。

现在,让我们试着用同样的命令rm运行中的容器: $docker rm 980c7d53a4e1

Docker Delete Container output 4

解释一下: 在上面的快照中,我们可以看到我们得到了一个错误,即Docker守护进程不能删除一个正在运行的容器;我们需要停止该容器或者强制删除它。

在这里,我们将使用"-f "标志来强制删除容器,如下所示。 $docker rm -f

Docker Delete Container output 5

解释一下: 在上面的快照中,我们可以看到容器已经被成功地删除了,没有任何错误,而且现在没有容器存在。

下面是上述所有命令的单一快照。

Docker Delete Container output 6

例子 #2

我们将创建一个链接容器,并将删除链接容器。

使用 "mysql "Docker镜像创建一个名为 "my-db "的源容器,如下所示。 $docker run -d --name my-db mysql sleep 3600 现在,用别名'db'将'my-db'容器链接到名为'my-web'的新容器,如下所示。 $docker run -d -P --name my-web --link my-db:db nginx 我们现在将删除这个链接下的容器,如下所示。 $docker rm -f /my-web $docker rm -f /my-db

Docker Delete Container output 7

如果我们只需要删除这些链接的容器之间的链接,我们可以使用'-link'或者'-l'标志来删除默认桥接网络上的链接,如下所示。- $docker rm -l /my-web/db

output 8

解释一下: 在上面的快照中,我们可以看到容器已经被重新创建,因为在最后一步中删除了容器,然后删除了容器之间的链接;但是,它并没有删除容器,因为你可以在快照中看到,容器仍然在运行。

例子 #3

我们将运行一个带有匿名卷的容器,并使用'-v'标志删除带有匿名卷的容器。

创建一个带有匿名卷的alpine容器,如下所示。 $docker run -d -v /root alpine 让我们删除这个没有任何标志的容器,如下所示。 $docker rm 3f04

output 9

解释: 在上面的例子中,如果我们不带任何标志地删除容器,我们可以看到匿名卷仍然存在。让我们使用"-v "标志,用下面的命令将匿名卷和容器一起删除。

$docker rm -v 39b7

output 10

解释: 在上面的快照中,我们重新创建了带有匿名卷的容器;然而,我们在删除容器时使用了'-v'标志,这也删除了连接到这个容器的匿名卷。

注意: '-v'标志只删除了附属于容器的匿名卷,而不是命名的卷。例如,我们有一个命名的卷 "my-vol "并附在容器上,那么它将保持原样,如下所示。

$ docker run -d -v my-vol:/etc -v /root alpine

output 11

解释一下: 在上面的快照中,我们可以看到,除了使用'-v'标志之外,卷'my-vol'仍然存在。

例子 #4

假设我们有多个处于停止状态或兴奋状态的容器,我们想摆脱它,想一次性删除所有的容器。

让我们创建3个Alpine容器和一个nginx容器,如下所示。 $docker run -d alpine

注意: 运行上述命令3次以创建3个容器

$docker run -d alpine

output 12

让我们用下面的命令检查容器的状态: $docker ps –a

output 13

下面的命令是用来删除所有停止的容器: $docker rm $(docker ps -a -q)

注意: 如果我们想删除所有的容器,请使用"-f "标志。

output 14

解释一下: 在上面的快照中,我们看到$(docker ps -a -q)命令查询了所有的容器,并将其发送给remove命令进行删除;但是它对运行中的容器抛出了一个错误。所以我们还有一条命令来删除所有的容器,除了正在运行的那个。

让我们再一次像上面那样创建一些容器,然后用下面的命令删除停止的容器:- $docker container prune

output 15

在上面的快照中,我们有3个处于退出状态的容器和1个处于运行状态的容器,在使用'prune'命令后,除了运行中的容器外,所有停止的容器都被删除了,而且它没有为运行中的容器抛出任何错误。

结论

我们使用'docker rm'命令来删除或移除不再需要的容器;然而,我们有一个替代命令,'docker container rm',其工作原理与'docker rm'命令类似。它也有同样的标志。我们可以根据自己的舒适度来使用任何一个命令。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3