Story
I was trying to do some cleanup of space for docker and needed to prune my unnamed volumes names.
Question
How to prune all unnamed docker volumes?
Answer
Use --filter
option. From docs:
By default, all unused volumes are removed. You can limit the scope using
the--filter
flag. For instance, the following command only removes
volumes which are not labelled with thekeep
label:$ docker volume prune --filter "label!=keep"
But to create correct filter first we need to inspect
volumes to find what labels and other parameters are present for them
$ docker volume inspect project_volume [ { "CreatedAt": "2021-09-30T11:35:55Z", "Driver": "local", "Labels": { "com.docker.compose.project": "project", "com.docker.compose.version": "2.0.0", "com.docker.compose.volume": "project_volume" }, "Mountpoint": "/var/lib/docker/volumes/project_project_data/_data", "Name": "project_project_data", "Options": null, "Scope": "local" } ]
So we could filter our volumes like this
$ docker volume prune --filter 'label!=com.docker.compose.project'
Note negative
filtering does not work for docker volume ls
for some reason.
$ docker volume ls --filter 'label!=com.docker.compose.project' Error response from daemon: Invalid filter 'label!'
Top comments (0)