[nodejs] Docker 컨테이너를 통한 Node.js 웹 애플리케이션 프레임워크 사용 사례

Docker는 애플리케이션을 컨테이너화하여 이식성과 확장성을 향상시키는 데 매우 유용한 도구입니다. Node.js는 빠르고 확장 가능한 웹 애플리케이션을 만들기 위한 인기 있는 플랫폼입니다. 이번 글에서는 Node.js를 Docker 컨테이너를 통해 사용하는 방법과 실제 사례를 살펴보겠습니다.

1. Docker로 Node.js 애플리케이션 개발 환경 설정하기

가장 먼저, Node.js 애플리케이션을 개발하기 위해 Docker로 개발 환경을 설정해야 합니다. Dockerfile을 사용하여 Node.js 환경을 구축할 수 있습니다.

# Node.js 이미지 다운로드
FROM node:14

# 애플리케이션 폴더 생성
WORKDIR /usr/src/app

# 의존성 설치
COPY package*.json ./
RUN npm install

# 애플리케이션 소스코드 복사
COPY . .

# 포트 오픈
EXPOSE 3000

# 애플리케이션 실행
CMD ["node", "index.js"]

Dockerfile은 Node.js 14 이미지를 사용하여 애플리케이션 폴더를 생성하고, 의존성을 설치한 후 애플리케이션을 실행하는 설정입니다.

2. Docker 컨테이너로 Node.js 애플리케이션 실행하기

Dockerfile을 작성한 후에는 이를 사용하여 Docker 컨테이너를 빌드하고 실행할 수 있습니다.

# Docker 이미지 빌드
docker build -t my-nodejs-app .

# Docker 컨테이너 실행
docker run -p 3000:3000 my-nodejs-app

위 명령어는 Dockerfile을 사용하여 my-nodejs-app 이미지를 빌드한 후, 해당 이미지를 기반으로 컨테이너를 실행합니다. 애플리케이션은 호스트 머신의 3000 포트와 컨테이너의 3000 포트를 연결하여 실행됩니다.

3. 실제 사례: Express.js 웹 애플리케이션을 Docker 컨테이너화하기

이제 간단한 Express.js 웹 애플리케이션을 Docker 컨테이너로 실행하는 실제 사례를 살펴보겠습니다.

3.1. Express.js 애플리케이션 코드

// index.js
const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.listen(port, () => {
  console.log(`App listening at http://localhost:${port}`);
});

3.2. Dockerfile

Express.js 애플리케이션을 컨테이너화하기 위한 Dockerfile은 다음과 같을 수 있습니다.

# Node.js 이미지 다운로드
FROM node:14

# 애플리케이션 폴더 생성
WORKDIR /usr/src/app

# 의존성 설치
COPY package*.json ./
RUN npm install

# 애플리케이션 소스코드 복사
COPY . .

# 포트 오픈
EXPOSE 3000

# 애플리케이션 실행
CMD ["node", "index.js"]

4. 마치며

이렇게하면 Express.js를 Docker 컨테이너로 실행할 수 있습니다. Docker를 통해 Node.js 애플리케이션을 컨테이너화 함으로써, 환경을 통일하고 개발과 배포 프로세스를 효율적으로 관리할 수 있습니다.

참고문헌: