Docker pull rate limit

docker pull storjlabs/storagenode:latest
Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading:

Is it telling me that I have reached my limit or that the image has reached its limit?

1 Like

This was sent by Docker on 1 September,2020.

Changes to Docker’s policies: retention of inactive images and pull rates


Docker offers numerous free services to our growing community of users and will continue doing so in the future. In order to sustainably scale this, we are making two policy updates in our terms of service. You are receiving this email so that you are aware of these updates, as they may impact you.

The first policy update is regarding retention of inactive images. Inactive images are defined as images that have not been pulled or pushed in 6 months. Starting November 1, 2020:

Free accounts may retain inactive images for up to 6 months
Pro and Team subscriptions may retain inactive images indefinitely
The second policy update is regarding limits on the number of image pulls. A pull is defined as up to two GET requests to the registry URL path ‘/v2/*/manifests/*’. Again, starting November 1, 2020:

Anonymous users will have an upper limit of 100 image pulls in a six hour period
Accounts authenticated with a DockerID will have an upper limit of 200 image pulls in a six hour period
Pro and Team subscriptions do not have limits
For details please see the FAQ and our recent blog posts regarding the new inactive image retention and pull rate limit policies.

If you have a free account you may upgrade to a Pro or Team subscription here.

The updated Docker Terms of Service are available here.

Thank you for using Docker.

Jean-Laurent de Morlhon
VP, Engineering

I was not sure how this affects us. This is why I didn’t post it as soon as I got the email but looking at the error message above it seems to affect SNOs.


Hmm. That could become an issue :thinking:

Should StorjLabs have their own docker repository? Ignore this, not related to StorjLabs in fact

I probably don’t need to pull every minute. I’ll back it off to once a day

1 Like

Yeah…two solutions:

  1. configure watchtower to only querry like twice a day (flag: “–interval 3600” for once per hour)
  2. authenticate your server against docker to double your allowed downloads per day

Both approaches worked well for me

1 Like

The storjlabs/watchtower uses a random interval between 12 and 72 hours, so if you use our image you will not be affected by limit of 100 requests per 6 hours for anonymous requests to docker hub.

1 Like

Why were you pulling every minute afraid you were going to miss the update?

The default poll interval for the upstream of watchtower is 300 seconds, so it should not be a minute.

1 Like

I don’t know what has gone wrong. I use the proper storjlabs watchtower.
So I stopped watchtower for now and I will use manual method

Are you sure you are using the updated command? Maybe you can post it and we can take a look.

How many containers?

I noticed in this post I noticed my 10 node on a pi4 setup is building up trash
that watchtower appeared to be restarting but I don’t think to check why
Edit : I believe I ran it with run once set. That was causing the restart and the check once per minute. So restart always with run once makes it check constantly.
I couldn’t actually find where I did that in bash history but it behaves the same when tested

If you use a containrrr/watchtower, you probably should increase a poll interval, because 11 containers (10 nodes and 1 watchtower container) will make 792 requests for 6 hours if the poll interval is 5 minutes.
I would like to suggest to use a storjlabs/watchtower:latest instead, then the poll interval will be between 12 and 72 hours and you unlikely hit their limit even for anonymous requests, unless you have more than 100 containers in total.