서버

Docker로 nodejs 설치하기

고태광이 2020. 3. 26. 20:39

작업할 폴더를 만든다.

mkdir devTest

cd devTest

 

npm init

 

express 모듈 설치

npm install express --save

 

index.js 파일을 만든다 (이름은 자유)

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


app.get('/', function(req, res) {
    res.send("hello world");
});


var server = app.listen(3000);

 

노드를 실행 후 localhost:3000을 주소창에 쳐서 잘 나오는지 확인. 

node index.js

 

도커 파일을 만든다. (touch DockerFile)

FROM node:latest
RUN mkdir -p /usr/src/test
WORKDIR /usr/src/test
COPY package.json /usr/src/test/
RUN npm install
COPY . /usr/src/test
EXPOSE 3000
CMD node index.js

 

From node:latest -> 도커 데몬에게 빌드 할 이미지를 지정

Run mkdir -p /usr/src/test -> 도커 데몬에게 실행할 커맨드를 작성 (/usr/src/test 폴더를 만들어라)

WORKDIR /usr/src/test -> 작업할 디렉토리를 설정

 COPY package.json /usr/src/test -> package.json 을 해당폴더에 복사

Run npm install -> package.json에 써져있는 모듈들을 설치

COPY . /usr/src/test -> 프로젝트와 관련된 모든 파일과 폴더들을 작업할 디렉토리로 복사

EXPOSE 3000 -> 포트 매핑

CMD node app.js -> 서버 실행

 

 

.dockerignore 추가  - COPY 명령이 실행될때 특정 파일들은 복사 못하게 할 수 있음

touch .dockerignore

 

.dockerignore에 node_modules 작성  (node_modules 빼고 모두 복사됨)

node_modules

 

도커 빌드하기

docker build --tag testnode:1.0 .

docker build --tag [repository 이름]:[태그]  [dockerfile이 있는 경로]

 

docker images

 

도커 실행하기

docker run -p 3000:3000 -d testnode:1.0

 

-p : 포트

-d : 컨테이너가 background에서 실행

 

 

docker ps

 

localhost:3000 하면 잘 작동하는지 확인 가능

 

 

 

reference

 

https://riptutorial.com/ko/docker/example/27294/%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88%EC%97%90%EC%84%9C-basic-node-js-%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0

 

Docker - 컨테이너에서 Basic Node.js 애플리케이션 실행하기 | docker Tutorial

docker documentation: 컨테이너에서 Basic Node.js 애플리케이션 실행하기

riptutorial.com

 

https://medium.com/extales/node-js-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EB%A5%BC-docker%EB%A1%9C-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0-2-cfff76ebae7e