Discourse アップデートエラー: Dockerのインストールが正しく動作していません

数年間、DigitalOceanのドロップレットでDiscourseをセルフホストしており、管理者ページやSSH経由でのCLI操作で何度も問題なくDiscourseをアップデートしてきました。今回初めて問題が発生しました。本日(2025年2月8日)、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をアップグレードする必要があります、またはまもなくアップグレードする必要があります。

OSもアップグレードする必要がある可能性が高いです。

lsb_release -aは何を示していますか?

しかし、こちらはもう少し懸念されます。

1時間待ってからもう一度試すことはできますか?

古いコンテナは次のように再起動できるはずです。

./launcher start app
「いいね!」 1

ジェイ様

ご返信ありがとうございます!

Dockerのアップグレード方法に関する手順が記載されているウェブページをおすすめいただけますでしょうか?

lsb_release -a を実行した結果は以下の通りです。

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

(DigitalOceanのドロップレットでOSのアップグレードを行ったことがないので、Linuxのアップデートを先延ばしにしていましたが、そろそろ決断しなければならないとわかっています。)

以前投稿する前に、お送りいただいたDockerの使用方法と制限に関するウェブサイトを確認しましたが、全く理解できませんでした。DiscourseをアップデートするためだけにDockerに料金を支払う必要があるのでしょうか?

./launcher start app を実行して再起動を試みましたが、./launcher rebuild app を実行したときとほぼ同じエラーメッセージが表示されました。

1時間以上経過したので、もう一度 ./launcher rebuild app を試しましたが、同じエラーが発生しました。

さらにアドバイスをいただけると大変助かります。

「いいね!」 1

編集:ああ、しかし、「リクエストが多すぎます」というエラーが出ていますね。次のように入力することをお勧めします。

  docker login

そして、指示に従ってください。無料の認証済みバージョンで問題が解決する可能性があります。

新しいものを取得し、rsyncを使用してDiscourseサイトを別のVPSに移動するに従うことをお勧めします。ダウンタイムはほとんどなく、何か問題が発生した場合は、新しいドロップレットを削除してもう一度試すことができます。

しかし、今は大丈夫なので、次のようにすることができます。

sudo apt update
sudo apt upgrade
# または、dockerのみをアップグレードしたい場合は、これで完了するでしょう。
sudo apt install docker-ce
「いいね!」 1

ジェイ様

sudo apt updatesudo 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

以前と同じエラーですが、非推奨のバージョンが 20.10.14 ではなく 24.0.2 になっています。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

パスワードを間違って貼り付けた可能性を考えて、数回試しましたが、すべて無駄でした。別のログインを作成する必要がありますか?

他に何かアドバイスがあれば、大変感謝いたします!

お使いの OS ではそれが限界です。おそらく十分でしょう。

ええ。Docker のみをアップグレードしようとします。Docker は場合によっては別の名前で呼ばれることがあるため、すべてをアップグレードする方が確実な解決策だと思いました。

それは OS の認証情報ではなく、要求されているのは Docker の認証情報です。私がそれを実行すると、次のようなものになります。

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

root として実行していますか、それとも docker を使用する権限のないユーザーとして実行していますか?

ジェイ様

はい、問題は、root権限で実行していなかったため、sudo docker login の代わりに docker login を実行したことでした。しかし、OSのユーザー名とパスワードではなく、Dockerのユーザー名とパスワードを入力しました。そこまでひどくはありません!

再度 sudo ./launcher rebuild app を実行したところ、エラーは発生しませんでした!もう一度実行するように求められたので、それに従いました。その後 sudo ./launcher start app を実行したところ、すべてが正常に起動しました!

本当にありがとうございました!Dockerログイン(そしてrootとしてログイン)が必要だっただけです。

多大な助けとなりました!寛大さと忍耐に改めて感謝いたします!このトピックが、同じ問題に遭遇した他の人々にも役立つことを願っています。

「いいね!」 2

まあ、誰にとって何が理にかなっているのか、いつも推測できるわけではありません。

解決したようでよかったです。

アップデートありがとうございます!この問題を見るのは初めてですが、提案した解決策がうまくいってよかったです。今後、この問題がより一般的になるかどうか疑問に思っています。

「いいね!」 2