Docker删除容器的方法及实例 |
您所在的位置:网站首页 › docker删除某一个镜像的命令是 › Docker删除容器的方法及实例 |
Docker rm是Docker的一条命令,用于删除或移除一个或多个容器。为了删除容器,它应该处于停止状态;然而,我们可以使用'-f'标志强行删除一个正在运行的容器。我们需要一个容器ID或容器名称来删除容器。当我们删除容器时,容器的所有数据都会被销毁,所以建议使用卷来进行持久性存储。在本专题中,我们将学习Docker删除容器。 语法 $docker rm --help选项 -f, -force:该选项用于删除一个正在运行的容器。它将使用SIGKILL来杀死运行该容器的进程。 -l, -link:它被用来删除链接 -v, -volumes:它用于删除连接到容器的匿名卷。 为了在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解释一下: 在上面的例子中,第一个名为 "modest_khorana "的容器处于退出状态,而第二个名为 "serene_hodgkin "的容器处于上升状态,这意味着它处于运行状态。让我们试着用'docker rm'命令来删除这些容器。 首先删除或移除停止的容器,如下所示。语法 $docker rm $docker rm例子 $docker rm d077d5f4873e我们可以看到容器被成功地删除了。 现在,让我们试着用同样的命令rm运行中的容器: $docker rm 980c7d53a4e1解释一下: 在上面的快照中,我们可以看到我们得到了一个错误,即Docker守护进程不能删除一个正在运行的容器;我们需要停止该容器或者强制删除它。 在这里,我们将使用"-f "标志来强制删除容器,如下所示。 $docker rm -f解释一下: 在上面的快照中,我们可以看到容器已经被成功地删除了,没有任何错误,而且现在没有容器存在。 下面是上述所有命令的单一快照。 我们将创建一个链接容器,并将删除链接容器。 使用 "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解释一下: 在上面的快照中,我们可以看到容器已经被重新创建,因为在最后一步中删除了容器,然后删除了容器之间的链接;但是,它并没有删除容器,因为你可以在快照中看到,容器仍然在运行。 例子 #3我们将运行一个带有匿名卷的容器,并使用'-v'标志删除带有匿名卷的容器。 创建一个带有匿名卷的alpine容器,如下所示。 $docker run -d -v /root alpine 让我们删除这个没有任何标志的容器,如下所示。 $docker rm 3f04解释: 在上面的例子中,如果我们不带任何标志地删除容器,我们可以看到匿名卷仍然存在。让我们使用"-v "标志,用下面的命令将匿名卷和容器一起删除。 $docker rm -v 39b7解释: 在上面的快照中,我们重新创建了带有匿名卷的容器;然而,我们在删除容器时使用了'-v'标志,这也删除了连接到这个容器的匿名卷。 注意: '-v'标志只删除了附属于容器的匿名卷,而不是命名的卷。例如,我们有一个命名的卷 "my-vol "并附在容器上,那么它将保持原样,如下所示。 $ docker run -d -v my-vol:/etc -v /root alpine解释一下: 在上面的快照中,我们可以看到,除了使用'-v'标志之外,卷'my-vol'仍然存在。 例子 #4假设我们有多个处于停止状态或兴奋状态的容器,我们想摆脱它,想一次性删除所有的容器。 让我们创建3个Alpine容器和一个nginx容器,如下所示。 $docker run -d alpine注意: 运行上述命令3次以创建3个容器 $docker run -d alpine注意: 如果我们想删除所有的容器,请使用"-f "标志。 解释一下: 在上面的快照中,我们看到$(docker ps -a -q)命令查询了所有的容器,并将其发送给remove命令进行删除;但是它对运行中的容器抛出了一个错误。所以我们还有一条命令来删除所有的容器,除了正在运行的那个。 让我们再一次像上面那样创建一些容器,然后用下面的命令删除停止的容器:- $docker container prune在上面的快照中,我们有3个处于退出状态的容器和1个处于运行状态的容器,在使用'prune'命令后,除了运行中的容器外,所有停止的容器都被删除了,而且它没有为运行中的容器抛出任何错误。 结论我们使用'docker rm'命令来删除或移除不再需要的容器;然而,我们有一个替代命令,'docker container rm',其工作原理与'docker rm'命令类似。它也有同样的标志。我们可以根据自己的舒适度来使用任何一个命令。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |