停止并删除正在运行的容器

3

我从这里安装了一个简单的培训应用程序:https://github.com/dockersamples/example-voting-app

之后,我想要删除此应用程序的正在运行的容器和镜像。我尝试输入以下命令:

docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
docker rm -f *containers*

首先,所有内容都被删除了,但是即使我从计算机上使用应用程序删除了此文件夹,容器仍然会自动重新启动和创建。

并且出现以下错误:Error response from daemon: You cannot remove a running container

可能在 docker-compose-files 中已经注册了自动启动,但是我已经从我的 Mac 中删除了这个项目的文件夹。

每次都会有 3 个正在运行的容器:

dockersamples/visualizer:stable                "npm start" vote_vis
dockersamples/examplevotingapp_result:before   "node server.vote_res
postgres:9.4                                   "docker-entry vote_db.

我该如何修复它并删除所有内容?

你尝试过使用-f参数强制执行rm命令吗?你查看过容器的重启策略吗?可以通过docker container inspect $(docker ps -aq) | grep -A 3 RestartPolicy来查看。 - undefined
我尝试了 docker rm -f *containers*,但它们仍然被重新创建。在 RestartPolicy 中,我看到了3个相同的块 "RestartPolicy": { "Name": "", "MaximumRetryCount": 0 },接下来该怎么办? - undefined
只需执行 docker-compose down && docker-compose rm -f -v - undefined
@Strelok 我删除了我的目录,出现了这个问题:-( 在这个目录或任何父目录中找不到合适的配置文件。还有其他方法吗?:-( - undefined
停止你的Docker守护程序,然后删除/var/lib/docker/数据。 - undefined
我的意思是,就我个人而言,如果你遇到问题,我的第一反应会是把文件夹放回原处。不确定之前你做错了什么,因为docker rm -f本来应该足够了。 - undefined
1个回答

2

您可能已经在Swarm模式下运行容器。当您停止或删除容器时,Swarm模式将查看与目标状态的差异,并重新部署容器以使您达到目标状态。要停止和删除由Swarm模式启动的容器,您需要运行堆栈和服务命令:

docker stack rm $(docker stack ls --format '{{.Name}}')

请等待一分钟,然后对于任何未作为堆栈管理的服务,您可以运行以下命令:

docker service rm $(docker service ls -q)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接