使用docker-compose.yml文件杀死docker-compose容器

时间:2017-12-19 10:39:01

标签: docker docker-compose

我有一些Docker容器由docker-compose配置restart: always标志。但我不小心删除了docker-compose.yml文件。

如何删除这些容器,以免它们自动重启?

3 个答案:

答案 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-还要删除与容器关联的所有匿名卷