안녕하세요 개발자정씨입니다.
이번 게시글에서는 제가 만든 App에 Dockerfile을 작성하고 이를 기반으로 container를 만드는 작업을 진행해 보겠습니다.
1. Dockerfile 작성
- 우선 App은 저의 자체 프로젝트(https://devjeong-note.tistory.com/50)를 사용하였습니다.
- 해당 프로젝트에 아래와 같이 간략하게 Dockerfile을 작성해 보았습니다.
FROM node:18
WORKDIR /app
COPY . .
RUN npm install
CMD ["npm", "start"]
FROM | 사용할 이미지 선택 |
WORKDIR | 컨테이너 내 작업 디렉토리 위치 |
COPY | 파일 및 디렉토리를 컨테이너의 파일 시스템 경로로 복사 (소스경로, 대상경로 순) |
RUN | Docker 이미지를 빌드할 때 실행되는 명령어 |
CMD | 빌드된 Docker 이미지가 실행될때 사용되는 명령어 |
2. 이미지 빌드
- 아래의 명령어를 이용하면 이미지를 빌드할 수 있습니다.
docker build -t main-server .
- 아래 명령어를 통해 이미지가 정상적으로 빌드 된 것을 확인 할 수 있습니다.
docker images

3. 이미지 실행
- 저번 게시글에서 다룬것 처럼 아래의 명령어로 컨테이너를 실행 할 수 있습니다.
docker run --name server-container -p 3000:3000 main-server
4. 보완 1
- 현재 COPY 명령어를 이용해 프로젝트 안에 있는 모든 파일들을 복사하고 있습니다.
- 하지만 node_module와 같이 굳이 복사할 이유가 없는 파일들이 존재합니다.
- 이때 .dockerignore을 사용할 수 있습니다. 내용은 아래와 같이 작성하시면 됩니다.
node_modules/
4. 보완 2
- 위에서 작성한 dockerfile을 수정하여 pm2로 프로세스를 관리할 수 있게 해보겠습니다.
- 아래와 같이 dockerfile을 수정하고 이미지를 생성해줍니다.
FROM node:18
WORKDIR /app
COPY . .
RUN npm install
RUN npm install -g pm2
CMD ["pm2-runtime", "app.js"]
- 아래 명령어를 통해 container에 bash로 직접 접근할 수 있습니다.
docker exec -it server-container /bin/bash
- 직접 접근하여 pm2를 통해 app이 실행된 것을 확인 할 수 있습니다.

'Docker & K8S' 카테고리의 다른 글
Chapter3 - docker-compose (0) | 2023.10.25 |
---|---|
Chapter1 - 설치 및 실행 (0) | 2023.09.09 |