Ошибка обновления Discourse: ваша установка Docker работает некорректно

Я уже несколько лет самостоятельно размещаю установку Discourse на виртуальном сервере DigitalOcean и многократно обновлял Discourse без каких-либо проблем — как через административную панель, так и через SSH с использованием CLI. Впервые столкнулся с проблемой. Сегодня (8 февраля 2025 года) я успешно обновил Docker-контейнер через административную панель. Затем я попытался обновить сам Discourse, но это не удалось. Я подключился по SSH и выполнил:

sudo ./launcher rebuild app

и получил следующую ошибку:

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

(У меня больше нет доступа к сообщениям об ошибках со страницы обновления администратора, так как сервер Discourse недоступен.)

Не знает ли кто-нибудь, почему это происходит и что мне нужно сделать?

Пожалуйста, помогите!

Вам нужно обновить Docker, или скоро придется.

Скорее всего, вам также нужно обновить вашу операционную систему.

Что показывает команда lsb_release -a?

Но это немного более тревожно.

Возможно, стоит подождать час и попробовать снова?

Вы должны быть в состоянии перезапустить старый контейнер с помощью команды

   ./launcher start app

Привет, Джей,

Огромное спасибо за ваш ответ!

Можете порекомендовать веб-страницу с инструкциями по обновлению Docker?

Команда lsb_release -a выводит:

No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.4 LTS
Release:	20.04
Codename:	focal

(Я откладывал обновление Linux, так как никогда не делал апгрейд ОС на DigitalOcean droplet, но понимаю, что скоро придется решиться.)

Я смотрел сайт, который вы прислали про использование Docker и лимиты, перед тем как написать сюда, но не могу в этом разобраться. Нужно ли мне платить за Docker, только чтобы обновить Discourse?

Я попытался перезапустить, запустив ./launcher start app, но получил сообщение об ошибке, почти идентичное тому, что было при запуске ./launcher rebuild app.

Прошло уже больше часа, поэтому я снова попробовал ./launcher rebuild app, но получил ту же ошибку.

Я очень ценю любую дополнительную помощь, которую вы сможете предоставить.

РЕДАКТИРОВАНИЕ: О, но у вас ошибка «слишком много запросов». Я думаю, что в такой ситуации я бы ввел

  docker login

и следовал инструкциям. Похоже, что бесплатная аутентифицированная версия может решить вашу проблему.

Я рекомендую просто создать новый Droplet и следовать инструкции Перенос сайта Discourse на другой VPS с помощью rsync. Время простоя минимально, и если что-то пойдёт не так, вы можете просто удалить новый Droplet и попробовать снова.

Но пока у вас всё в порядке, так что вы можете просто выполнить

sudo apt update
sudo apt upgrade
# или, если вы хотите обновить только Docker, это, вероятно, поможет.
sudo apt install docker-ce

Привет, Джей,

Я выполнил sudo apt update и sudo apt upgrade без проблем. Затем я снова попытался запустить sudo ./launcher rebuild app, но получил ошибку:

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

Обратите внимание, что это та же ошибка, что и раньше, но теперь устаревшая версия — 24.0.2 вместо 20.10.14. Я попробовал sudo apt install docker-ce, но при запуске sudo ./launcher rebuild app возникает та же ошибка. Похоже, система не хочет обновляться до версии 24.0.7 или новее.

Я только что успешно создал вход в Docker через веб-сайт Docker. Я могу войти на сайт Docker, но при запуске docker login в командной строке и вводе имени пользователя и пароля (которые я скопировал и вставил из связки ключей, чтобы избежать опечаток), получаю:

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

Я пробовал несколько раз на случай, если я неправильно вставил пароль, но безрезультатно. Нужно ли мне создать другой вход?

Я очень ценю любые дополнительные советы, которые вы сможете предоставить!

Для вашей ОС это лучший возможный вариант. Скорее всего, этого достаточно.

Да. В этом случае система попытается обновить только Docker. В некоторых ситуациях Docker может называться по-разному, поэтому я подумал, что обновление всего будет более надёжным решением.

Система запрашивает учётные данные Docker, а не вашей операционной системы. Когда я делаю то же самое, я получаю что-то вроде этого:

ИСПОЛЬЗУЕТСЯ ВЕБ-ВХОД
Чтобы войти с учётными данными в командной строке, используйте 'docker login -u <username>'

Ваш одноразовый код подтверждения устройства: WZYX-ABCD
Нажмите ENTER, чтобы открыть браузер, или введите код устройства здесь: https://login.docker.com/activate

Запускаете ли вы это от имени root или от имени пользователя, у которого нет прав на использование Docker?

Привет, Джей,

Да, проблема заключалась в том, что я выполнил команду docker login вместо sudo docker login, так как не работал от имени root. Но я вводил свои учётные данные Docker (имя пользователя и пароль), а не учётные данные операционной системы. Я не так уж плох!

Я снова запустил sudo ./launcher rebuild app и больше не получил ошибок! Программа попросила запустить её ещё раз, и я выполнил это. Затем я запустил sudo ./launcher start app, и всё работает!

Огромное спасибо! Мне просто нужно было выполнить вход в Docker (а затем войти как root).

Вы были невероятно полезны! Ещё раз спасибо за вашу щедрость и терпение! Надеюсь, эта тема поможет другим, столкнувшимся с той же проблемой.

Ну, я не всегда могу угадать, что кому кажется логичным.

Рад, что вы разобрались.

Спасибо за обновление! Это первый раз, когда я сталкиваюсь с такой проблемой, и я рад, что моё предложенное решение сработало. Интересно, станет ли это более распространённой проблемой в будущем.