DockerHub가 작동하지 않을 때 Docker 이미지 다운로드
Source: Dev.to
왜 이런 작업을 하고 싶을까요?
2016년, 저는 Docker를 배우기 시작하고 싶었습니다. 그때 이미 Docker는 모든 개발자 도구 상자에 꼭 있어야 할 필수품이 되었습니다. 그 약속들은 인상적이었고, 리눅스 매니아인 저는 Docker에 대한 이야기를 읽으며 흥미를 느꼈습니다. 문제는 제가 쿠바에 살고 있다는 것이었습니다.
쿠바를 포함한 일부 국가에서는 수출 제한으로 인해 Docker 이미지를 다운로드할 수 없습니다. 모든 곳에서 무료인 이미지조차도 다운로드할 수 없습니다. VPS나 VPN처럼 위치를 숨길 수 있는 방법이 없었기에, 제가 할 수 있는 유일한 대안은 친구들이 docker save 로 저장한 이미지를 받아 docker load 로 불러오는 것이었습니다.
제 상황은 변했지만, 비슷한 환경에 있는 많은 개발자들은 여러분이 당연히 여기는 리소스에 접근하기 어려워합니다. 쿠바 개발자들을 돕기 위해 저는 간단한 서비스를 만들었습니다.
서비스 인스턴스
서비스 인스턴스는 에 배포되어 있습니다.
- 다운로드하려는 이미지의 이름과 태그를 입력합니다.
- Download 버튼을 클릭합니다.
- 다음 명령으로 로컬 Docker에 가져올 수 있는 파일이 다운로드됩니다:
docker load -i myimage_tag.tar.gz
그 후 친구나 동료와 이미지를 공유할 수 있습니다.
다운로드 자동화
wget, curl 혹은 원하는 도구를 사용해 다운로드를 스크립트화할 수 있습니다. wget 예시:
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
필요에 맞게 스크립트를 수정해 사용하세요.
자체 호스팅
친구들이 사용할 수 있도록 자체 서버를 설정하는 것은 간단합니다. 저장소는 에 있습니다. Docker Compose 로 배포하는 방법은 문서를 참고하세요.
기여
Pull request를 환영합니다. 다음을 지켜 주세요:
- 새로운 코드에 대한 테스트를 작성합니다.
- 기존 테스트가 모두 통과하는지 확인합니다.
배경 및 향후 전망
이 서비스는 다소 오래되었습니다. 첫 번째 버전은 6~7년 전에 작성했으며, 최근에 V2를 공개했습니다. 초기 버전은 클라이언트 애플리케이션이 필요했으며 현재는 유지·배포되지 않습니다.
지리적·정치적 제약 없이 접근이 자유로워지는 날이 오면 이런 도구가 필요 없게 되길 바랍니다. 그때까지 저는 서비스를 운영하고, 필요로 하는 사람에게 공유할 것입니다.
읽어 주셔서 감사하고, 즐거운 해킹 되세요.