I’ve been self-hosting a Discourse installation on a DigitalOcean droplet for several years and have updated Discourse many times with no problems both via the admin page and ssh-ing in and using the CLI. This is the first time I’m having a problem. Today (February 8th, 2025) I updated the Docker container via the admin page just fine. Then I stared updating Discourse, and it failed. I ssh’d in and ran:
sudo ./launcher rebuild app
and got this error:
WARNING: Docker version 20.10.14 deprecated, recommend upgrade to 24.0.7 or newer.
x86_64 arch detected.
WARNING: We are about to start downloading the Discourse base image
This process may take anywhere between a few minutes to an hour, depending on your network speed
Please be patient
2.0.20250129-0720: Pulling from discourse/base
toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit
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
Unable to find image 'discourse/base:2.0.20250129-0720' locally
docker: 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.
See 'docker run --help'.
Your Docker installation is not working correctly
See: https://meta.discourse.org/t/docker-error-on-bootstrap/13657/18?u=sam
(I no longer have access to the error messages from the admin update page since the Discourse server is down.)
Does anyone know why this is happening and what I need to do?
Is there a webpage you can recommend with instructions on how to upgrade Docker?
Running lsb_release -a yields:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.4 LTS
Release: 20.04
Codename: focal
(I’ve been putting off updating linux, as I’ve never done an os upgrade on a DigitalOcean droplet, but I know I’ll have to bite the bullet soon.)
I looked at the website you sent about Docker Usage and limits before I posted here, but I don’t know how to make heads or tails of it. Do I have to pay for Docker just to update Discourse?
I did try to restart by running ./launcher start app but got an almost identical error message to that when I ran ./launcher rebuild app.
It’s been over an hour, so I just tried to ./launcher rebuild app again, but got the same error.
I very much appreciate any more guidance you can provide.
EDIT: Oh, but you have the “too many requests” error. I think what I’d do is type
docker login
and follow the instructions. It looks like a free authenticated version might solve your problem.
I’d recommend just getting a new one and following Move a Discourse site to another VPS with rsync. There’s little downtime and if something goes wrong, you can just delete the new droplet and try again.
But you’re fine for now, so you could just be able to
sudo apt update
sudo apt upgrade
# or if you want to just upgrade docker, this will probably do it.
sudo apt install docker-ce
I ran sudo apt update and sudo apt upgrade without incident. I then tried to run sudo ./launcher rebuild app again and got the error:
WARNING: Docker version 24.0.2 deprecated, recommend upgrade to 24.0.7 or newer.
x86_64 arch detected.
WARNING: We are about to start downloading the Discourse base image
This process may take anywhere between a few minutes to an hour, depending on your network speed
Please be patient
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
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
Unable to find image 'discourse/base:2.0.20250129-0720' locally
docker: 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.
See 'docker run --help'.
Your Docker installation is not working correctly
Note that it’s the same error as before except now the deprecated version is 24.0.2 instead of 20.10.14. I tried sudo apt install docker-ce but get the same error when running sudo ./launcher rebuild app. It doesn’t seem to want to upgrade to 24.0.7 or newer.
I just successfully created a Docker login from the Docker website. I can log into the Docker site, but when I run docker login from the command line and enter my username and password (which I copied and pasted from my keychain to avoid typos) I get:
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/auth": dial unix /var/run/docker.sock: connect: permission denied
I’ve tried it several times in case I pasted the password wrong, all to no avail. Is there a different login that I have to create?
I greatly appreciate any more advice you may be able to provide!
That’s as good as it gets with your OS. It’s probably good enough.
Yup. It’ll try to upgrade only docker. Docker goes by some different names in some different cases, so I thought upgrading everything was a more sure solution.
That’s your docker credentials it wants, not your OS credentials. When I do that I get something like this:
USING WEB-BASED LOGIN
To sign in with credentials on the command line, use 'docker login -u <username>'
Your one-time device confirmation code is: WZYX-ABCD
Press ENTER to open your browser or submit your device code here: https://login.docker.com/activate
Are you running this as root, or as some user that doesn’t have permission to use docker?
Yes, the problem was that I ran docker login instead of sudo docker login as I was not running as root. But I did enter my Docker username and password, not my os username and password. I’m not that bad!
I just ran sudo ./launcher rebuild app again and didn’t get the errors! It asked me to run it again, so I complied. I then ran sudo ./launcher start app and everything is up and running!
Thank you so much! I just needed to have a docker login (and then log in, as root).
You’ve been such a tremendous help! Thanks again for your generosity and patience! Hopefully this topic will help others encountering the same issue.
Well, I can’t always guess what things make sense to whom.
Glad you figured it out.
Thanks for the update! This is the first time I’ve seen this problem, and I’m glad my suggested solution worked. I’m wondering whether this is going to be a more common problem going forward.