码头工人 | 如何删除除某些容器之外的所有容器

Sha*_*lem 2 containers docker

我有兴趣删除所有容器,但仍然可以选择一些不删除的容器。
我通常使用以下内容:

docker rm $(docker ps -aq)
Run Code Online (Sandbox Code Playgroud)

但这将全部删除。有没有办法仍然使用类似的方法,但选择某些不会被删除的容器(通过其 ID 或任何其他方式)?

Von*_*onC 5

--filter您可以使用可用的条件之一docker ps

例如,为了仅删除已退出的容器,我使用

alias drmae='docker rm $(docker ps -qa --no-trunc --filter "status=exited")'
Run Code Online (Sandbox Code Playgroud)

但还有其他标准:

-f, --filter=[]       Filter output based on these conditions:
                    - exited=<int> an exit code of <int>
                    - label=<key> or label=<key>=<value>
                    - status=(created|restarting|running|paused|exited)
                    - name=<string> a container's name
                    - id=<ID> a container's ID
                    - before=(<container-name>|<container-id>)
                    - since=(<container-name>|<container-id>)
                    - ancestor=(<image-name>[:tag]|<image-id>|<image@digest>) - containers created from an image or a descendant.
Run Code Online (Sandbox Code Playgroud)