본문 바로가기
NestJS

Docker Compose 사용 및 Postgres 설치

by Programmer.Junny 2025. 2. 24.

Docker Compose란?

이전 포스팅에서 도커란 일관된 버전과 세팅들을 사용자가 쉽게 사용할 수 있도록 하는 것이라 하였다.

이 실행된 것들이 컨테이너인데, 이런 컨테이너가 많아질수록 관리가 어렵다.

그래서 관리를 위해 또 새로운 프레임워크들이 등장하게 된다.

관리의 관리 위한 ...

Docker Compose와 Kubernetes(K8s) 의 차이는 Compose는 단순히 여러 개의 컨테이너를 한번에 관리하는 것이고, 쿠버네티스는 클러스터 환경에서 컨테이너를 관리하기 위한 도구라고 볼 수 있다.

Docker Compose yaml 파일 작성

services:
  postgres:
    image: postgres:15
    restart: always
    volumes:
      - ./postgres-data:/var/lib/postgresql/data
    ports:
      - '5432:5432'
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: typeormstudy

우리는 PostgreSQL을 사용하기 위해 위와 같은 Docker Compose 파일을 작성한다.

세분화해서 설명해보자면

services:
  postgres:
    image: postgres:15

postgres 라는 서비스를 실행한다는 명세이다.

postgres 서비스의 이미지가 15버전을 사용한다는 것이다.

    restart: always

실행을 할때마다 항상 재시작을 하라는 명세이다.

    volumes:
      - ./postgres-data:/var/lib/postgresql/data

도커 이미지 안에서 실행되거나 생성되었던 파일들은 도커 이미지 안에서만 종료하므로, 도커를 종료하면 초기화된다.

초기화되지 않도록 도커 내의 파일과 프로젝트 폴더 경로를 지정하여 연동 되도록 한다.

    ports:
      - '5432:5432'

이미지 내의 포트와 호스트의 포트를 연동한다.

    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: typeormstudy

environment 에 Postgres에서 사용하는 유저와 비밀번호, DB명을 입력한다.

docker-compose up

마지막으로 docker-compose up 을 하면 

도커 서버가 실행되게 된다.

도커 데스크탑에서 컨테이너를 보면 위와 같이 컨테이너가 실행된 것을 볼 수 있다.

컨테이너 오른쪽에 Actions 를 눌러서 실행할 수도 있다.

'NestJS' 카테고리의 다른 글

TypeORM - NestJS에 설정하기  (0) 2025.02.24
VCS에서 PostgreSQL 툴 사용하기  (0) 2025.02.24
Docker 설치  (0) 2025.02.24
Docker 이론  (0) 2025.02.24
NestJS - 제어의 역전과 의존성 주입  (0) 2025.02.20

최근댓글

최근글

skin by © 2024 ttuttak