본문 바로가기
Infra/Docker

[Docker] Docker로 Node.js 배포하기

by dbjh 2019. 12. 1.
반응형

1. 우선 Docker를 실행하기 전에 PC의 가상화 여부를 확인하고 관련된 설정부터 바꾼다.

 

https://support.bluestacks.com/hc/ko/articles/115003910391-%EB%82%B4-PC%EC%97%90%EC%84%9C-%EA%B0%80%EC%83%81%ED%99%94-VT-%EB%A5%BC-%ED%99%9C%EC%84%B1%ED%99%94%ED%95%98%EB%A0%A4%EB%A9%B4-%EC%96%B4%EB%96%BB%EA%B2%8C%ED%95%A9%EB%8B%88%EA%B9%8C-

 

내 PC에서 가상화(VT)를 활성화하려면 어떻게합니까?

-- Deprecated content starts -- Download Latest Version 이 버전의 BlueStacks는 더 이상 사용되지 않는 관계로 지원되지 않습니다. 최신 버전을 다운로드하는 것이 좋습니다. 다른 문의 사항이 있으시면 다음을 참조하십시오 이 링크. -- Deprecated content ends -- 참고사항: 이...

support.bluestacks.com

 

2. 가상화 설정을 하였다면 Docker를 설치한다. (여기서는 window 용)

 

https://steemit.com/kr/@mystarlight/docker

 

[docker]도커 처음 사용자를 위한 윈도우 도커 설치 및 실행하기 — Steemit

윈도우에서 도커 설치는 두 가지 버전으로 나뉩니다. Windows 10 Home 버전 이하에서 설치하는 방법과 Windows 10 Pro 또는 Windows 10 Enterprise 버전, Windows… by mystarlight

steemit.com

 

3. Node.js 이미지를 배포할 예정이기 때문에 Node.js를 설치하고 서버를 실행 시켜본다. 

3.1 Node.js 설치

 

https://nodejs.org/ko/

 

Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

 

3.2 Node.js 서버 실행

3.2.1 npm 모듈을 이용하여 라이브러리를 설치한다.

npm init
npm install --save express

 

3.2.2 간단한 node.js 서버 소스코드를 작성한다.

var express = require('express');
var app = express();
const port = 3000;
 
var server = app.listen(port, function () {
    console.log("server start");
});
 
app.get('/', function (req, res) {
    res.send('Hello Node.js !!');
});

 

3.2.3 CMD 창에서 해당 파일의 경로로 이동하여 node.js 서버를 실행 시킨다.

node index.js

 

3.2.4 브라우저에서 localhost:3000을 입력하여 서버로 접근하여 페이지를 확인한다.

 

서버에서 응답한 페이지

 

 

4. Docker image 생성

4.1 에디터를 이용하여 아래처럼 파일들을 수정하자.

 

.dockerignore

node_modules/

 

Dockerfile - 얘는 파일 확장자가 없음

* Dockerfile 명령어 정리 : https://dbjh.tistory.com/17

FROM node:8
COPY . .
RUN npm install
EXPOSE 3000
WORKDIR /
 
CMD node index.js

 

pakage.json

{
  "name": "docker-node",
  "version": "1.0.0",
  "description": "docker node test",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "falsy",
  "license": "WTFPL",
  "dependencies": {
    "express": "^4.16.3"
  }
}

 

4.2 아래 명령어를 내려서 도커이미지를 생성한다.

docker build --tag docker-node:dev .

 

 

4.3 생성된 도커 이미지를 확인한다

docker images

생성된 docker-node 이미지

 

5. Docker Container 실행

5.1 생성된 이미지 docker-node:dev를 이용하여 컨테이너를 실행시킨다.

docker run --name docker-node-test -p 3000:3000 docker-node:dev

5.1.1 컨테이너를 실행하였는데 아래와 같은 오류가 나타난다면 Dockerfile을 수정한다.

FROM node:8

#Creator

MAINTAINER 0.1 '자신의 도커에 가입했던 이메일' ex) docker123@gmail.com

COPY . .
RUN npm install
EXPOSE 3000
WORKDIR /
 
CMD node index.js

 

5.2 위와 같이 Dockerfile을 수정하고 다시 이미지생성 - 컨테이너 실행을 한다.

 

5.3 Node.js 서버가 실행된 것을 확인하고 브라우저에서 서버로 접근하도록 한다.

도커 컨테이너 위에서 실행된 Node.js 서버

참조

반응형

댓글