본문 바로가기
Node js/Nest js 강의 내용

7. Docker (Nest js 로 개발한 서버를 docker로 띄워보자)

by Bill Lab 2025. 1. 27.
728x90

1. Docker 란?

    : VM(Viture Machine)의 경량화 버전으로, 응용프로그램실행에 꼭 필요한 경량화된 OS 및 서버를 설치하여 컨테이너 기반으로 

      실행, 관리하는 오픈 소스(하나의 격리된 작은 PC 개념)

    (추가설명 링크: https://www.ibm.com/kr-ko/topics/docker )

 

 

2. Docker 설치

     1) 다운로드 : https://www.docker.com/

 

Docker: Accelerated Container Application Development

Docker is a platform designed to help developers build, share, and run container applications. We handle the tedious setup, so you can focus on the code.

www.docker.com

        : 위의 경로에서 설치를 바로 해도 된다.(OS 버전에 맞는걸 선택하자!, Window 의 경우 별도의 WSL 작업이 필요하다)

 

   2) 설치 확인

        : docker --version 명령어로 아래와 같이 버전확인이 가능하다.

        (Docker Dashboard 에서도 확인 가능)

        

 

3. Docker 를 사용하므로써 장점

     - 하나의 물리서버에 여러개의 서버생성 가능

     - 꼭 필요한 파일만을 설치하여 서버화 가능

     - 컨테이너 간의 영향 및 외부프로그램의 영향을 제거하여, dev stage prod 환경을 동일하게 구성가능

        (과거, 타 응용프로그램의 영향으로 인해, 코드에 문제가 없음에도 불구하고 오류가 나는경우 발생)       

 

 

4. Nest js Dockerfile

FROM node:22

RUN mkdir -p /var/app 
WORKDIR /var/app 
COPY . . 

RUN yarn install
RUN yarn build 

EXPOSE 3000 
CMD [ "node", "dist/main.js" ]

     : node 버전은 20 이상 버전을 사용하는것을 추천한다.

     (file 명 준수 필요!)

 

5. 빌드 및 컨테이너 실행

     1) 이미지 빌드

         : docker build -t servername(원하는 명칭) .

     2) 컨테이너 실행

         : docker run -d -p 3000:3000 servername

 

 

728x90