4

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?

1 Answer 1

2

This is answered in the Docker blog post on multi-platform docker builds. For your specific situation, you would perform a build and push for each platform you'd like, then create a manifest file and push that. Then you can perform the save. It would look something like this:

$ docker buildx build --platform linux/amd64 --push -t localhost:5000/myimage:amd64 .
$ docker buildx build --platform linux/arm64 --push -t localhost:5000/myimage:arm64 .
$ docker manifest create myimage:latest myimage:amd64 myimage:arm64
$ docker manifest push localhost:5000/myimage:latest
$ docker image save -o myimage.tar localhost:5000/myimage:latest
2
  • It seems to me that — if this is the solution — then there is no way to use the old workflow of pull | save to preserve a manifest on the client and push it to another registry. This SO answer suggests registry-to-registry push instead: stackoverflow.com/a/68576882/2496266 Sep 23, 2022 at 20:31
  • This answer doesn't do what was requested. The docker image save command 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 4, 2023 at 19:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.