자료 조사 : 도커(Docker)로 Node.js 환경의 서버 구축

2021. 11. 3. 01:56Blockchain/Project - Coin Swap

  1. 작업 할 폴더 생성 후 해당 폴더로 경로 이동하여 vsCode 실행
  2. npm init
    npm install express --save
  3. server.js 파일 생성 후 코드 작성
    const express = require('express');
    const app = express();
    
    app.get('/', (req,res) => {
        res.send('hello world');
    });
    
    app.listen(3000, () => {
        console.log('server on PORT : 3000');
    });​
    npm run start // 서버 실행 후 http://localhost:3000/ 출력 확인
  4. vsCode Extension에서 docker 검색하여 Docker 플러그인을 설치
  5. 도커 파일(DockerFile) 생성 후 내용 작성
    ※ 도커 파일이란?
    도커 이미지에 사용할 기본 이미지 및 이를 설치하고 실행할 항목을 설명하는 매니페스트(manifest
    )
    생성 완료
    FROM node:14.17.0
    WORKDIR /app
    COPY package*.json /app
    RUN npm install
    COPY . /app
    EXPOSE 3000
    CMD [ "npm", "start" ]
    ※ 내용 설명
    FROM node:14.17.0 -> 도커 데몬에게 빌드 할 이미지를 지정
    WORKDIR /app -> 작업할 폴더 설정
    COPY package*.json /app -> package.json을 해당 폴더에 복사
    Run npm install -> package.json에 써져있는 모듈들을 설치
    COPY . /app -> 프로젝트와 관련된 모든 파일과 폴더들을 작업 할 폴더로 복사
    EXPOSE 3000 -> 포트 매핑
    CMD [ "npm", "start" ] -> 도커 실행 시 같이 실행되는 명령어 정의
     
  6. .dockerignore 파일 생성 후 내용 작성
    Docker image 파일 시스템의 node_modules가 현재 로컬 작업 디렉토리의 node_modules로 덮어지지 않기 위해
    node_modules
    npm-debug.log​
     
  7. 도커 빌드
    docker build --tag [repository 이름]:[태그]  [dockerfile이 있는 경로]
    docker build -t docker-node-test .
  8. docker images // 빌드 확인
  9. docker run -p 3000:3000 -d docker-node-test // 도커 실행
    Docker Container로 빌드 된 Image를 실행
    host 포트 3000으로 들어오는 트래픽을 container 포트 3000으로 포워딩 시킴
  10. docker ps // 실행 중인 컨테이너 확인
    http://localhost:3000/ 출력 확인
    docker ps
    http://localhost:3000/