웹 UI를 통해 Docker 매니저를 업데이트하려고 할 때 Docker 설치에 오류가 발생했습니다. sam의 추천을 따라 했더니 아래 메시지가 표시되어 Docker 설치가 깨져 있다는 것을 알고 있습니다:
$ docker run -it --rm hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:9572f7cdcee8591948c2963463447a53466950b3fc15a247fcad1917ca215a2f
Status: Downloaded newer image for hello-world:latest
docker: Error response from daemon: no status provided on response: unknown.
ERRO[0003] error waiting for container: context canceled
이렇게 하는 것이 안전한지, 아니면 어떤 결과가 있을지 확인해 주실 수 있나요? Docker가 제거될까 봐 조금 두렵습니다. 그렇다면 이 과정에서 제 사이트가 중단될 것이라 추측합니다 (이상하게도, Docker가 깨져 있음에도 불구하고 현재 사이트는 여전히 정상 작동 중입니다). 하지만 제 Discourse 설치 환경은 안전한가요, 아니면 컨테이너도 사라질까요?
수정: 제가 감히 진행해 본 한계는 다음과 같습니다:
$ sudo apt-get install runc=1.0.0~rc7+git20190403.029124da-0ubuntu1~16.04.4
[sudo] password for christoph:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
aufs-tools cgroupfs-mount docker-ce-cli libltdl7
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
containerd.io docker-ce
The following NEW packages will be installed:
runc
0 upgraded, 1 newly installed, 2 to remove and 21 not upgraded.
1 not fully installed or removed.
Need to get 1,890 kB of archives.
After this operation, 192 MB disk space will be freed.
Do you want to continue? [Y/n] n
Abort.
$
재부팅을 해보셨나요? 업그레이드를 한 후 재부팅을 하지 않으면 Docker에서 문제가 생기는 경우가 있었습니다.
네. 그건 좀 무섭게 들리네요. 16.04에 사이트들이 있고, runc 관련 작업을 한 적이 없다는 것은 알고 있습니다.
다운타임이 걱정되고 Digital Ocean을 사용 중이시라면, 다음 방법을 고려해 볼 수 있습니다.
18.04로 새로운 드롭렛을 생성하고 클린 설치를 진행합니다.
플로팅 IP를 확보하여 기존 서버를 가리키게 하고, DNS를 해당 IP로 설정합니다.
기존 포럼을 읽기 전용으로 설정합니다.
백업을 수행합니다.
새 서버로 복원합니다.
플로팅 IP를 새 서버로 다시 지정합니다.
이렇게 하면 다운타임 없이 백업 및 복원에 걸리는 읽기 전용 시간만 발생하게 됩니다. 읽기 전용 설정을 적용하기 전에 한두 번 연습해 볼 수도 있습니다. 또한 업로드 파일을 백업에 포함시키지 않고 rsync로 동기화하는 방법을 사용하면, 데이터베이스만 백업/복원하면 됩니다.
기존의 Let’s Encrypt 인증서도 가져와야 할 것입니다. 그렇지 않으면 인증서를 다시 발급받아야 할 것 같습니다.
가능성이 있는 후속 문제를 해결할 시간이 있을 때 이번 주말에 재부팅을 시도해 볼 것 같습니다. 왜냐하면: 아니요, 저는 몇 년 전에 discourse 인스턴스 세 개를 설정해 두었지만, "새로운 서버를 시작하고 처음부터 다시 시작하는 것"은 아마도 하루 종일 바쁠 것입니다. 도메인을 새 IP 주소로 지정하는 것만으로도 잠재적으로 악몽 같은 일이 될 수 있습니다. 아니면 그렇지 않을 수도 있지만, 그렇다면 그것이 큰 문제가 아니라는 것을 알아내는 데에도 시간이 좀 걸릴 것입니다…