Docker already fills up my dev machines yet they decided for this insane solution: > The containerd image store uses more disk space than the legacy storage drivers for the same images. This is because containerd stores images in both compressed and uncompressed formats, while the legacy drivers stored only the uncompressed layers. Why ?
Docker 29 has changed its default image store for new installs
51–60 of 93 posts
Re: Docker 29 has changed its default image store for new installs
#52Earlier quoted context omitted.
Why would I need the compressed layers?
The OCI manifest references the hashes of these compressed layers, and re-compressing them does not guarantee obtaining the same hash
Re: Docker 29 has changed its default image store for new installs
#53Earlier quoted context omitted.
They are adopting to containerd standard, not sure why negative sentiment
Where did you see that? I just did a deep dive into podman/quadlets/bootc/composefs and never once seen a mention of that. A google search also didn’t bring anything like that up.
Re: Docker 29 has changed its default image store for new installs
#54The article says to regularly run prune, how regularly? Currently I run the following once per day from cron: docker system prune -a -f docker volume prune -a -f
This would depend entirely on how much churn your system is doing on containers/volumes/images. Once a day sounds really often for most situations. "Regularly" = when you're running out of space because of a bunch of built up old stuff.
Re: Docker 29 has changed its default image store for new installs
#55It sounds like this breaks all Docker installs that use userns-remap? Are they really shipping a breaking change with no fix? In addition to bloating the disk? In addition to breaking all old systems that relied on mapping /var/lib/docker? I can't believe Docker finally shit the bed. Time to replace Docker with Podman.... sigh
Re: Docker 29 has changed its default image store for new installs
#56Earlier quoted context omitted.
Where did you see that? I just did a deep dive into podman/quadlets/bootc/composefs and never once seen a mention of that. A google search also didn’t bring anything like that up.
I think the "They" mentioned was Docker, not Podman. That Docker was adopting the containerd standard.
Re: Docker 29 has changed its default image store for new installs
#57The article says to regularly run prune, how regularly? Currently I run the following once per day from cron: docker system prune -a -f docker volume prune -a -f
From the docs, you can just run `docker system prune -a --volumes` Ref: https://docs.docker.com/reference/cli/docker/system/prune/
The 'system' context captures networks; much to my dismay, this has been a problem for no fewer than three employers. It's painfully common for things to expect the networks to persist. They don't really consume resources, so I see no reason to invite the systematic heartburn.
When? When there's disk pressure. Maybe some longer term (weekly, monthly?) to keep a lid on things. The image cache provides a benefit, no sense fighting it. At our rate, daily pruning means I might lose hours (through a week) repeatedly pulling the same images.
Re: Docker 29 has changed its default image store for new installs
#58Earlier quoted context omitted.
Why would I need the compressed layers?
The OCI manifest references the hashes of these compressed layers, and re-compressing them does not guarantee obtaining the same hash
(As others said, compression is deterministic for the same algorithm, parameters and input data)
Re: Docker 29 has changed its default image store for new installs
#59Re: Docker 29 has changed its default image store for new installs
#60Earlier quoted context omitted.
The OCI manifest references the hashes of these compressed layers, and re-compressing them does not guarantee obtaining the same hash
Recompressing should be guaranteed deterministic. It’s the packing/unpacking of tar archives to/from directories on disk that leads to the non-determinism (such as timestamps and ownership metadata). If the tar is left intact, both zstd and gzip should produce byte for byte identical outputs given the same compression parameters.