我有一些Docker容器由docker-compose配置restart: always
标志。但我不小心删除了docker-compose.yml文件。
如何删除这些容器,以免它们自动重启?
答案 0 :(得分:2)
如果没有compose文件,docker-compose就无法猜出需要被杀死的容器的名称。您需要使用docker命令手动执行此操作:
docker container ls
docker rm -f <container-name-or-id>
答案 1 :(得分:1)
您可以使用docker ps -a
列出所有正在运行的容器。在您可以使用docker stop container-name
单独停止所需容器之后,可以使用docker rm $(docker ps -a -q)
删除并删除所有已停止的容器。
此外,如果您想要删除泊坞窗图片,也可以使用docker images
列出现有图片,然后在docker rmi image-name
之后删除图片。
答案 2 :(得分:0)
我有一个类似的问题-我不想获取.yml文件只是为了删除容器。当docker-compose将标签添加到容器时,我们可以使用它们来过滤匹配的容器,然后将其删除。
要在外壳程序(bash或类似文件)中删除docker-compose为项目ProjectName创建的所有容器(通常为docker-compose.yml
所在的文件夹的名称),请执行以下操作:
docker ps --filter 'label=com.docker.compose.project=ProjectName' --format {{.ID}} | xarg -n 1 docker rm --force --volumes
docker ps
(带有过滤器)提供了容器列表,提供了格式,以便仅打印容器ID
xargs -n 1
-获取容器ID的列表,并在每个容器ID上提供目标作为参数的目标上执行目标命令
docker rm
删除现有容器
--force
-还停止运行容器(否则将不会停止或删除正在运行的容器)
--volumes
-还要删除与容器关联的所有匿名卷