Infra/Docker

[Docker Hub] toomanyrequests: You have reached your pull rate limit 에러 해결

kth990303 2023. 9. 22. 18:06
반응형

CI를 돌릴 때 아래 에러가 뜨면서 실패할 수 있다.

 

Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit

 

Understanding Your Docker Hub Rate Limit | Docker

Get a better understanding of your Docker Hub rate limit for container image pull requests, depending on usage type and subscription level.

www.docker.com

 

위 에러는 docker hub에서 이미지를 직접 pulling 하는 경우가 지나치게 많으면 발생하는 에러이다.

실제로 2020년 말부터 무료플랜일 경우 최대 6시간에 200회, 유료플랜일 경우 최대 24시간에 50,000회 제한이 생겼다고 한다.

 

CI에서 docker image를 hub에서 pulling 하고 빌드하는 과정이 너무 빈번하면 위 횟수는 초과될 수 있다.


해결법

도커 이미지를 내려받을 수 있는 private container registry (프록시 서버)를 구축한다.

 

위 컨테이너 레지스트리가 사실상 docker hub의 프록시 역할을 해주게 하는 것.

따라서 docker image를 pulling할 때 도커 허브가 아닌 프록시를 찌르므로 Ratelimit 제약을 회피할 수 있게 된다.

 

보통 AWS ECR, Nexus, Harbor를 많이 이용하는 듯하다.

Harbor 관련 좋은 글이 있어서 기록 겸 여기에 남겨두려 한다.

https://engineering.linecorp.com/ko/blog/harbor-for-private-docker-registry

 

Private Docker Registry를 구축하기 위한 오픈소스 Harbor 도입기

저를 소개합니다 안녕하세요. LINE+에서 엔지니어로 일하고 있는 이지현입니다. 저는 현재 글로벌에서 일하고 있는 수많은 LINE 엔지니어들이 좀 더 효율적으로 업무를 수행할 수 있도록 여러

engineering.linecorp.com

 

프록시 서버를 구축하게 되면, CI 및 docker-compose, docker yml 파일의 수정이 필요할 수 있다.


참고

 

반응형