Skip to main content
오픈소스 관계형 데이터베이스(RDBMS)입니다. 테이블 형태로 데이터를 저장하고 SQL로 조회합니다.

어디에 쓰이나요?

  • 사용자 정보, 게시글, 주문 내역 등 구조화된 데이터를 저장할 때
  • Dify, Langfuse, n8n 등 대부분의 애플리케이션이 기본 데이터베이스로 사용
  • 트랜잭션, 외래 키 등 데이터 무결성이 필요한 경우
이 가이드에서 다루는 Dify, Langfuse, Langflow, n8n 모두 내부적으로 PostgreSQL을 사용합니다. 각 서비스의 docker-compose.yml에 PostgreSQL이 포함되어 있으므로, 별도로 설치할 필요 없이 해당 서비스를 실행하면 됩니다.

Docker Compose

docker-compose.yml
services:
  postgres:
    image: postgres:17
    container_name: postgres
    restart: unless-stopped
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: changeme
      POSTGRES_DB: postgres
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:

실행

docker compose up -d

접속 확인

docker exec -it postgres psql -U postgres
정상적으로 접속되면 postgres=# 프롬프트가 표시됩니다.
SELECT version();

기본 정보

항목
포트5432
기본 사용자postgres
기본 비밀번호changeme
데이터 저장 경로postgres_data 볼륨

환경 변수

변수설명기본값
POSTGRES_USER슈퍼유저 이름postgres
POSTGRES_PASSWORD슈퍼유저 비밀번호(필수)
POSTGRES_DB기본 데이터베이스 이름POSTGRES_USER 값
PGDATA데이터 디렉토리 경로/var/lib/postgresql/data

라이선스

구분내용
라이선스PostgreSQL License (BSD 계열)
개인 사용자유롭게 사용 가능
상업적 사용자유롭게 사용 가능, 수정/재배포 제한 없음

참고

설치 점검 목록

  • docker compose up -ddocker compose ps로 컨테이너 상태를 확인했습니다.
  • 기본 포트/계정/비밀번호를 문서대로 점검했습니다.
  • 운영용으로 사용할 때 기본 비밀번호/시크릿 값을 변경했습니다.
  • 장애 분석을 위해 docker compose logs -f 확인 방법을 숙지했습니다.

문제 해결 가이드

  • 컨테이너가 실행되지 않으면 docker compose logs -f로 오류 원인을 먼저 확인합니다.
  • 포트 충돌이 나면 기존 프로세스를 종료하거나 포트 매핑 값을 변경합니다.
  • 이미지 pull 실패 시 네트워크 연결 및 레지스트리 접근 권한을 확인합니다.
  • 설정 변경 후 문제가 지속되면 docker compose down 후 다시 up -d로 재기동합니다.

관련 문서

Setup 홈

운영체제별 설치 흐름을 다시 확인합니다.

다음: Redis

다음 설치 단계를 이어서 진행합니다.