I have a multi-arch build that is pushing to a local registry I have running:
docker buildx build --platform linux/amd64,linux/arm64 --push -t localhost:5000/myimage:latest
I need to export this multi-arch image to a .tar file for future use with docker load. I cannot for the life of me find a way to do this.
I've tried:
docker pull localhost:5000/myimage:latest
docker save -o myimage.tar localhost:5000/myimage:latest
And this exports only the image for my architecture (amd64). So then I tried:
docker pull --platform linux/arm64 --platform linux/amd64 localhost:5000/myimage:latest
docker save -o myimage.tar localhost:5000/myimage:latest
And this has the same result, even though I'm explicitly telling it to pull both architectures.
How can I export a multi-arch image from a local registry as a single .tar file?
pull | saveto preserve a manifest on the client and push it to another registry. This SO answer suggests registry-to-registry push instead: https://stackoverflow.com/a/68576882/2496266 – Chaim Eliyah Sep 23 '22 at 20:31docker image savecommand creates an archive, but if you open the archive and look at the contents you'll find that it actually only includes the one image matching the current system architecture (probably linux/amd64). – mtalexan Dec 04 '23 at 19:17