[Docker] node.js용 도커 컨테이너 만들기

도커 컨테이너란

도커는 애플리케이션의 개발, 실행 및 배포를 간단하게 해주는 플랫폼입니다. 컨테이너는 경량이며, 기본 시스템 리소스를 효율적으로 사용하는 것이 특징입니다. VM과 달리 호스트 OS의 커널을 공유하여 더 빠르고 동시에 많은 요청을 처리할 수 있습니다.

node.js란

비동기 이벤트 기반 자바스크립트 런타임을 제공해서 애플리케이션이 서버에서 실행될 수 있도록 합니다. 

express를 이용한 간단한 웹서버 만들기

mkdir express_app
cd express_app
npm init

epxress 라이브러리를 설치합니다.

npm install express

app.js 파일을 생성 후 코드를 작성합니다.

const express = require('express');
const app = express();

const msg = "Hello world! this is nodejs in a docker container..";

app.get('/', (req, res) => res.send(msg));

app.listen(3000, () => {
    console.log("app running on port 3000...");
});

로컬에서 실행을 할 수 있습니다.

node app.js

도커에서 실행하기 위해 Dockerfile을 생성합니다.

express_app 폴더에서 생성합니다.

FROM node
WORKDIR /app
COPY package.json /app
RUN npm install
COPY app.js /app
CMD ["node", "app.js"]

이미지를 빌드합니다.

docker build -t docker-nodejs .

만든 이미지로 컨테이너를 실행합니다.

docker run -d -p 8000:3000 docker-nodejs

잘 실행되는지 확인합니다.