{"id":13410504,"url":"https://github.com/jadolg/DockerImageSave","last_synced_at":"2025-03-14T16:32:15.378Z","repository":{"id":53603741,"uuid":"146609838","full_name":"jadolg/DockerImageSave","owner":"jadolg","description":"Saves docker images in a remote host and allows you to download them to circumvent Docker censorship in Cuba","archived":false,"fork":false,"pushed_at":"2024-10-22T07:01:12.000Z","size":410,"stargazers_count":69,"open_issues_count":3,"forks_count":6,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-10-23T10:05:40.402Z","etag":null,"topics":["cuba","docker","hacktoberfest"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jadolg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"jadolg"}},"created_at":"2018-08-29T14:10:46.000Z","updated_at":"2024-10-22T07:01:14.000Z","dependencies_parsed_at":"2023-02-19T11:16:12.095Z","dependency_job_id":"c7f369f3-8e0d-4264-98bf-a023a9475460","html_url":"https://github.com/jadolg/DockerImageSave","commit_stats":null,"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jadolg%2FDockerImageSave","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jadolg%2FDockerImageSave/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jadolg%2FDockerImageSave/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jadolg%2FDockerImageSave/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jadolg","download_url":"https://codeload.github.com/jadolg/DockerImageSave/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243610222,"owners_count":20318927,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cuba","docker","hacktoberfest"],"created_at":"2024-07-30T20:01:07.350Z","updated_at":"2025-03-14T16:32:14.969Z","avatar_url":"https://github.com/jadolg.png","language":"Go","funding_links":["https://github.com/sponsors/jadolg"],"categories":["Docker"],"sub_categories":["Telegram"],"readme":"# Docker Image Save\n\n![logo](./logo.png)\n\n[![Go](https://github.com/jadolg/DockerImageSave/actions/workflows/go.yml/badge.svg)](https://github.com/jadolg/DockerImageSave/actions/workflows/go.yml)\n\nThis package consists of two commands. \n* `DockerImageSaveServer` is a server that pulls, saves, compresses and serves via http docker images. Docker has to be installed in the computer this service is deployed. \n* `DockerImageSave` is the terminal application that talks with `DockerImageSaveServer` and downloads the zip compressed docker images.\n\n## Why?\nCuba is actively blocked by Docker and this makes difficult to obtain docker images since there is no direct access to the registry, also Cuba's internet access is restricted and slow in most cases, so a way to download these images that can be resumed is needed by thousands of developers.\n\n## Official Docker image\nDocker image is being deployed with the CI as `guamulo/dockerimagesave`\n\n## How to use the client:\n\n### Download\n\nDownload it for your distribution from the releases page on GitHub (https://github.com/jadolg/DockerImageSave/releases).\nNot there? Create an issue and I'll start shipping specially for you ;-)\n\nor\n\n### Install as a snap\n\n[![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-black.svg)](https://snapcraft.io/docker-image-save)\n\n`snap install docker-image-save` \n\n### Help\n\nThe client comes with help included. Please use it ;-)\n\n```\nUsage of ./DockerImageSave-linux-amd64:\n  -i string\n        Image to download\n  -no-animations\n        Hide animations and decorations\n  -no-download\n        Do all the work but downloading the image\n  -s string\n        URL of the Docker Image Download Server (default \"https://dockerimagesave.akiel.dev/\")\n  -search string\n        A search query\n```\n\nIf you are using it from a script I recommend to use the `-no-animations` flag to make it less noisy.\nAlso if planning to use curl for downloading you might want to use the `-no-download` flag.\n\n## How to use the server\n\nYou are able and encouraged to deploy your own server. The best way to use it is of course the docker version.\nJust run `docker run -p 6060:6060 -v /var/run/docker.sock:/var/run/docker.sock:rw -d guamulo/dockerimagesave:latest`.\nThere are no \"official\" builds of the server as a binary.\n\n## API Documentation\n\nWant to write yor own client? Here is what you need to know.\n\n### Pulling the image on the server\n\nThis API call will pull the image to your server. It is exactly the same as doing `docker pull image` on the server.\n- path: **/pull/{id}**\n- method: GET\n- curl: `curl https://dockerimagesave.akiel.dev/pull/alpine:latest`\n- response: `{\"id\":\"alpine:latest\",\"status\":\"Downloaded\"}`\n\nWait for the status to be **Downloaded** so you can save the image for downloading.\nIt does not matter how many times you call this endpoint with the same image it won't re-download it.\n\n### Saving the image\n\nThis API call will save and compress an already pulled image making it ready for download. \n- path: **/save/{id}**\n- method: GET\n- curl: `curl https://dockerimagesave.akiel.dev/save/alpine:latest`\n- response: `{\"id\":\"alpine:latest\",\"url\":\"download/alpine:latest.tar.zip\",\"size\":2214576,\"status\":\"Ready\"}`\n\nWait for the status to be **Ready** so you can download.\n\n### Downloading the image\n\nFinally you can download the image doing with the url provided after saving it.\n\n- Path: **/download/{url}**\n- Method: GET\n- curl: `url https://dockerimagesave.akiel.dev/download/alpine:latest.tar.zip -o alpine:latest.tar.zip`\n\n### Loading the image into your local Docker\n- Unzip the downloaded file `unzip alpine\\:latest.tar.zip`\n- Load it into Docker `docker load -i alpine\\:latest.tar`\nNow you should be able to see it on the images list on `docker images | grep alpine`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjadolg%2FDockerImageSave","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjadolg%2FDockerImageSave","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjadolg%2FDockerImageSave/lists"}