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 |