Discourse 업데이트 오류: Docker 설치가 올바르게 작동하지 않습니다

수년간 DigitalOcean 드롭렛에서 Discourse를 셀프호스팅으로 운영하고 있으며, 관리자 페이지와 SSH 접속 후 CLI를 통해 여러 번 업데이트를 진행했지만 문제없이 잘 사용해 왔습니다. 이번이 처음 겪는 문제입니다. 오늘(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

Jay님,

답장 주셔서 정말 감사합니다!

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 업그레이드를 해본 적이 없어서 리눅스 업데이트를 계속 미뤄왔지만, 결국 곧 해야 할 것임을 알고 있습니다.)

여기에 게시하기 전에 보내주신 Docker 사용 및 제한 사항에 대한 웹사이트를 살펴봤지만, 내용을 이해하기가 어렵습니다. Discourse를 업데이트하기 위해 Docker에 비용을 지불해야 하나요?

./launcher start app를 실행하여 재시작을 시도해 보았지만, ./launcher rebuild app를 실행했을 때와 거의 동일한 오류 메시지가 나타났습니다.

1시간이 넘게 걸렸기 때문에 다시 ./launcher rebuild app를 시도해 보았지만, 동일한 오류가 발생했습니다.

더 많은 안내를 주시면 정말 감사하겠습니다.

수정: 아, 그런데 “too many requests” 오류가 있군요. 저는

  docker login

을 입력하고 지시사항을 따르는 것을 제안합니다. 무료 인증 버전이 문제를 해결해 줄 것 같습니다.

새 드롭렛을 하나 구하고 rsync를 사용하여 Discourse 사이트를 다른 VPS로 이동하는 것을 추천합니다. 다운타임이 거의 없으며, 문제가 발생하면 새 드롭렛을 삭제하고 다시 시도하면 됩니다.

하지만 지금은 상황이 괜찮으므로, 단순히

sudo apt update
sudo apt upgrade 
# 또는 docker만 업그레이드하려는 경우, 이 명령이 작동할 가능성이 높습니다.
sudo apt install docker-ce

Jay님,

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

이전과 동일한 오류인데, 이제 비추천(deprecated) 버전이 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를 사용할 권한이 없는 다른 사용자로 실행 중인가요?

Jay님,

네, 문제가 발생한 이유는 루트 권한으로 실행하지 않아서 sudo docker login 대신 docker login을 실행했기 때문이었습니다. 하지만 저는 OS 사용자 이름과 비밀번호가 아니라 Docker 사용자 이름과 비밀번호를 입력했습니다. 제가 그렇게까지 엉망진창은 아니거든요!

다시 sudo ./launcher rebuild app을 실행했는데 이번에는 오류가 발생하지 않았습니다. 프로그램이 다시 실행하라고 해서 그렇게 했습니다. 그런 다음 sudo ./launcher start app을 실행하니 모든 것이 정상적으로 작동하고 있습니다!

정말 감사합니다! 저는 docker login(그리고 루트 권한으로 로그인)만 하면 되는 것이었습니다.

정말 큰 도움이 되었습니다! 너그러움과 인내심에 다시 한번 감사드립니다. 이 게시글이 같은 문제를 겪는 다른 분들에게 도움이 되길 바랍니다.

글쎄요, 어떤 것이 누구에게 의미 있는지는 항상 추측하기가 어렵습니다.

해결하신 것 같아 다행이에요.

업데이트해 주셔서 감사합니다! 이 문제를 처음 보는 건데, 제가 제안한 해결책이 효과가 있어서 기쁩니다. 앞으로 이 문제가 더 흔해질지 궁금하네요.