Hello I am using Go docker client to develop an app.
The problem is I can’t find any REST request that equivalent to command docker image prune -af
the function ImagesPrune
works like command docker system prune
and unfortunately I can’t pass any flags to it.
I also attempted to send request to API with curl like this:
curl --unix-socket /var/run/docker.sock -X POST "http://localhost/images/prune"
which returned {"ImagesDeleted":null,"SpaceReclaimed":0}
as response so it works like command docker image prune
as well.
I tried query parameters but no avail also I can’t find force
or all
flags on docker api docs as well.
So what request the command docker image prune -af
or docker system prune -af
sends?
rimelek
(Ákos Takács)
2
Check the API reference
https://docs.docker.com/engine/api/v1.46/#tag/Image/operation/ImagePrune
dangling=<boolean>
When set to true
(or 1
), prune only unused and untagged images. When set to false
(or 0
), all unused images are pruned.
The above quote is from the “filters” section.
Then check the SDK reference
https://pkg.go.dev/github.com/docker/docker/client#Client.ImagesPrune
It shows you can pass filters.
-f
should not be necessary as there is nothing to ask for confirmation so you don’t need to disable it.
2 Likes
Thanks for your help rimelek!
I used parameter at first but my mistake was setting the dangling to true. I set the dangling to false and it worked as intended.
pruneFilters := filters.NewArgs()
pruneFilters.Add("dangling", "false")
rep, err := cli.ImagesPrune(ctx, pruneFilters)