Andro
(Andrew Bernard)
10월 24, 2026, 9:59오전
1
Discourse 인스턴스를 다른 디스크, 예를 들어 Digital Ocean의 블록 스토리지 볼륨으로 전체를 이동하는 방법에 대한 설명이 있나요? 저는 자체 호스팅 Docker 이미지를 사용 중입니다. 여기 관련 정보가 있지만 다른 토론 내용과 뒤섞여 있어 파악하기가 어렵습니다. 현재 공간이 부족하여, 이미지를 삭제해 보았음에도 불구하고 launcher가 재빌드되지 않습니다.
Andro
(Andrew Bernard)
10월 24, 2026, 2:07오후
3
제 상황과는 조금 다릅니다. 저는 Discourse 인스턴스를 같은 서버의 블록 스토리지로 옮기고 싶습니다. 새로운 서버로 이전하는 것은 원치 않습니다. 그리고 업로드와 백업만이 아니라 모든 것을 이동하고 싶습니다. 이렇게까지 자세히 설명해 달라고 해서 죄송합니다! 이 부분을 엉망으로 만들고 싶지 않거든요.
그럼 내가 처음에 링크한 문서를 확인해 보시는 것이 좋을 것 같습니다. 기본적으로 업로드와 백업은 마운트된 디스크로 옮기되, 데이터베이스는 메인 드라이브에 유지하는 방식입니다.
Discourse:
/var/discourse/shared를 볼륨으로 이동하기
최적의 성능을 위해 postgres_data는 메인 드라이브에 유지하고, 나머지 데이터는 새로 연결된 볼륨으로 이동합니다.
루트 권한으로 로그인한 상태에서 서버에서 다음 명령어를 실행하세요:
mv /var/discourse/shared/standalone/postgres_data /var/postgres_data_discourse
mv /var/discourse/shared /mnt/volume_nyc1_05
volume_nyc1_05 부분을 실제 볼륨 이름으로 대체해야 합니다.
변경 사항을 반영하여 app.yml 편집하기
원하는 편집기로 /var/discourse/containers/app.yml 파일을 열고 다음 블록을 찾으세요:
## The Docker container is stateless; all data is stored in /shared
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
위 블록을 아래 내용으로 교체하세요:
## The Docker container is stateless; all data is stored in /shared
volumes:
- volume:
host: /mnt/volume_nyc1_05/shared/standalone
guest: /shared
- volume:
host: /mnt/volume_nyc1_05/shared/standalone/log/var-log
guest: /var/log
- volume:
host: /var/postgres_data_discourse
guest: /shared/postgres_data
volume_nyc1_05 부분을 실제 볼륨 이름으로 대체해야 합니다.
app.yml 파일을 저장하고 컨테이너를 다시 빌드하세요.
/var/discourse/launcher rebuild app
제가 오해하고 있지 않다면, 이것이 당신이 하려는 작업이 맞나요? (물론, 이 작업을 수행하기 전에 반드시 백업을 해두시기 바랍니다)
Andro
(Andrew Bernard)
10월 25, 2026, 7:30오전
5
확인해 보진 않았지만, 데이터베이스가 공간을 차지하고 있어서 이동을 해야 하는 것 같다고 생각했어요. 고성능은 고려 사항이 아닙니다.
Ethsim2
(Ethan )
10월 25, 2026, 7:36오전
6
이미지만 삭제하는 대신 docker system prune을 사용하여 더 광범위한 Docker 클리닝을 시도해 보셨나요?
Ed_S
(Ed S)
10월 25, 2026, 8:09오전
7
측정을 시작하고 결과를 공유하는 것이 좋습니다. 진행 방식에 대해 옳을 수도 있지만, 먼저 상황을 파악해 보겠습니다.
docker prune를 사용하는 것도 좋은 아이디어입니다.
디스크 크기:
df -h /
그리고 현재 해당 디스크의 사용량:
그리고 docker의 사용량:
docker system df
docker images -a
docker image ls
docker volume ls -qf dangling=true
(저는 docker 전문가가 아니므로 이 명령어들이 다소 중복될 수 있지만, 이러한 출력들을 통해 docker 사용량을 파악할 수 있을 것입니다)
전체적으로, 디스크 사용량은 다음 요소들의 조합입니다.
운영 체제
스왑 파일
다양한 로그 파일
discourse 소프트웨어
백업
데이터베이스
포럼 업로드 파일
많은 포럼에서는 업로드 파일이 가장 큰 비중을 차지합니다. 하지만 반드시 측정해야 합니다!
리눅스 시스템 관리 전문가가 아니라면, 필요 없는 오래된 항목들도 몇 가지 더 있을 가능성이 높습니다.