Docker로 PostgreSQL 띄우기

김민석·2026년 3월 18일
post-thumbnail

Docker

애플리케이션을 컨테이너화 해서 쉽게 배포 및 실행을 도와주는 플랫폼. 앱을 실행하려면 이것저것 설치 및 설정해야 하는데 Docker를 사용하면 다 되게끔 다른 사람에게 전달이 가능하여 다른 사람이 바로 실행이 가능함.

Docker 장점

  • 모든 사람이 같은 환경에서 사용가능
  • 서버에 배포할때 편하고 빠름
  • 데이터베이스, 백엔드, 프론트엔드 같은 거 동시에 여러 개도 한 번에 띄울 수 있음

Docker Compose

여러개의 컨테이너를 정의하고 실행하기 위한 도구
Yml파일을 통해 서비스,네트워크,볼륨 등을 설정할 수 있음.

PostgreSQL Docker Compose 작성

version: '3.8'
services:
  db:
    image: postgres:15
    container_name: test-db
    restart: always
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: testtest
      POSTGRES_DB: testdb
    volumes:
      - test_db_data:/var/lib/postgresql/data

volumes:
  test_db_data:

위 yml 파일을 뜯어보자 일단

  • version은 docker-compse 파일 버전.
  • services는 어떠한 컨테이너를 띄울지 정의하는 영역이다. 지금은 db만 있지만 frontend,backend 도 가능하다.
  • image : postres:15 => PostgreSQL 15 버전 컨테이너 띄우기
  • container_name : 컨테이너 실제 이름
  • restart : always로 설정하면 꺼져도 자동으로 재시작을 한다.
  • ports : 왼쪽은 내 PC 오른쪽 컨테이너 PostgreSQL 즉 왼쪽은 내 PC에 맞춰 바꿀 수 있음 오른쪽은 변경 X
  • environment : 컨테이너 실행 시 환경변수들
  • volumes (서비스 내부) : DB 데이터를 컨테이너가 아니라 외부 volume에 저장
    • 컨테이너 삭제해도 데이터 안 날아감
  • volumes(전역) : 위에서 사용한 test_db_data를 실제로 생성하는 구문

PostgreSQL 컨테이너 실행하기

# 컨테이너 시작
# -d = 백그라운드로 실행
docker-compose up -d

# 컨테이너 상태 확인
docker ps

# 컨테이너 중지
docker-compose down

PostgreSQL 접속 테스트

// 컨테이너 내부의 psql 실행
// docker exec -it [container_name] [command]
docker exec -it test-db psql -U admin -d testdb
profile
나만의 기록장

0개의 댓글