인프런 커뮤니티 질문&답변

진용님의 프로필 이미지

작성한 질문수

따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)

도커를 이용한 Postgres 실행

docker-compose up 오류

작성

·

536

0

docker-compose up을 사용하면
initdb: error: directory "/var/lib/postgresql/data" exists but is not empty

initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data". 라는 오류가 자꾸 발생합니다. 삭제하고 다시 해도 해결이 안되서 질문남깁니다. 어떻게 해결해야하나요.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

진용님, docker-compose를 사용하여 PostgreSQL 데이터베이스를 초기화할 때 발생하는 오류에 대해 질문해 주셨습니다. 오류 메시지는 “/var/lib/postgresql/data” 디렉토리가 존재하지만 비어 있지 않다는 것을 알려줍니다. PostgreSQL의 initdb 코드는 이 디렉토리가 비어 있거나 존재하지 않아야 새 데이터베이스 클러스터를 만들 수 있습니다.

기존 답변들을 살펴본 결과, 다음과 같은 관련 답변을 찾았습니다:

  • postgres 에러 문의
    에서는 비슷한 문제에 대한 답변이 제공되었습니다. 도커 데이터 볼륨이 초기화되지 않아 발생하는 오류에 대한 설명과 해결 방법을 제안하고 있습니다. 도커 데스크탑에서 기존 볼륨을 삭제하고 postgres:14.1-alpine과 같은 다른 이미지를 사용해 보는 방법을 제시하고 있습니다.

  • docker-compose up 명령어 날리면 에러 발생
    이 답변은 docker-compose 실행시 발생하는 오류에 관한 질문에 대한 답변으로, 경로 문제에 대한 해결 방안을 제공합니다. 디렉토리 위치가 올바른지 확인하고, 다시 시도하라는 조언이 포함되어 있습니다.

  • docker-compose up 실행 시, mysql Error 발생 건
    이 링크도 유사한 문제, 즉 Docker 컨테이너를 시작할 때 발생하는 데이터 볼륨 관련 문제를 다루고 있지만, 여기서는 MySQL에 초점을 맞추고 있습니다. 그럼에도 공유되는 데이터 볼륨 관련 문제와 도커 이미지 초기화에 관한 설명이 도움이 될 수 있습니다.

해당 문제를 해결하는데, 이미지를 다르게 사용하거나, Docker Desktop에서 데이터 볼륨을 삭제하는 방법, 프로젝트 루트 디렉토리에서의 docker-compose 명령어 실행 등을 시도해 볼 수 있습니다. 데이터 볼륨 폴더(/var/lib/postgresql/data)를 비우거나, 이미 존재하는 데이터가 손실되는 것을 원하지 않는다면 백업을 먼저 수행하시기 바랍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

진용님의 프로필 이미지

작성한 질문수

질문하기