Why would you want to do this?
Back in 2016 I really wanted to start learning Docker. By the time It had already become a must-have in every developer toolbox. The promises were impressive and as a Linux nerd I was loving what I was reading about it. The problem: I was living in Cuba.
Cuba, among other countries, is actively blocked from downloading Docker images due to export restrictions. You can't even download what comes for free everywhere.
Not having access to a VPS or VPN that could mask my location at the time, my only alternative was relying on images downloaded by friends and saved using docker save, importing them in my docker environment using docker load.
Eventually my position in life shifted and I no longer live in Cuba but many developers just like me still struggle to get access to resources many of you in the other side of the world give for granted. Because of that, I decided to do my part to help my fellow Cuban developers.
So how do I use this?
Directly from the website
An instance of my service is deployed at https://dockerimagesave.akiel.dev/
Write the name and tag of the image you want to download and hit the Download button. A file will be eventually downloaded that you can import to your local Docker with docker load -i myimage_tag.tar.gz and you can share with your friends and colleagues.
The nerd way
Do you want to automate your way in? No problems, just use wget/curl/whatever rocks your terminal.
Here's an example using wget to download and load the ubuntu:25.04 image in which I included some retries "just in case":
wget -c --tries=5 --waitretry=3 --content-disposition "https://dockerimagesave.akiel.dev/image?name=ubuntu:25.04" && docker load -i ubuntu_25_04.tar.gz
Feel free o script around.
I want to help others
Great to hear! I'm only one person with limited resources. Setting up a server so your friends can use it is very simple. Just go to https://github.com/jadolg/DockerImageSave and follow the instructions to deploy using docker compose.
Wanna make the service better? PRs are open and I'm waiting for your code. Please make sure you write tests for the new code and also that it passes the already existing ones.
Another good idea to help is to participate in politics. This service fixes a problem that should not exist. It's completely artificial and fabricated by people trying to make other people's life harder. I would love to discontinue this service someday because the world is better.
A bit of unimportant history
The service itself is somewhat old. I wrote the first version around 6-7 years ago and just last week decided it was time for V2. You might find traces of V1 still in the wild. A much harder to use service that required a client application. That version is no longer maintained nor deployed anywhere as far as I know.
Final words
If you made it this far, thanks for reading. That already tells me you care about building things and about making technology accessible to the people who want to learn and use it.
This project started as a very personal workaround for a very real limitation. Revisiting it years later reminded me that small tools can still make a difference. Sometimes all it takes is removing one unnecessary barrier so someone can experiment, learn, or move forward with their work.
You do not need to use this service yourself to see its value. If it helps a friend, a colleague, or someone you have never met get unstuck, then it has done its job. If it motivates you to self host it, improve it, or build something similar, even better.
I sincerely hope we reach a point where tools like this are no longer needed because access is no longer restricted by geography or politics. Until then, I am happy to keep this running and to share it with anyone who finds it useful.
Thanks for reading, and happy hacking.

Top comments (1)
We loved your post so we shared it on social.
Keep up the great work!