![](/img/trans.png)
[英]How to show all running containers created by docker-compose, globally, regardless of docker-compose.yml
[英]Kill docker-compose containers without docker-compose.yml file
我有一些由 docker-compose 提供的 docker 容器,并带有restart: always
标志。 但是我不小心删除了 docker-compose.yml 文件。
如何删除这些容器,以便它们不会自动重新启动?
没有 compose 文件,docker-compose 无法猜测需要杀死的容器的名称。 您需要使用 docker 命令手动执行此操作:
docker container ls
docker rm -f <container-name-or-id>
您可以使用docker ps -a
列出所有正在运行的容器。 在您可以使用docker stop container-name
单独停止您想要的容器之后,您可以使用docker rm $(docker ps -a -q)
删除和删除所有停止的容器。
此外,如果您还想删除 docker 图像,您可以使用docker images
列出现有图像,然后在docker rmi image-name
删除图像。
我有一个类似的问题 - 我不想获取 .yml 文件只是为了删除容器。 由于 docker-compose 为容器添加标签,我们可以使用这些标签来过滤匹配的容器,然后将其删除。
要删除docker-compose.yml
在 shell(bash 或类似的)中为项目 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
- 还删除与容器关联的任何匿名卷
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.