Node.js 웹 앱 도커화

4120 단어
우리 모두 도커에 대해 많이 들어봤을 것입니다. 이 게시물에서는 기존 노드 js 애플리케이션을 고정 표시하는 방법을 살펴봅니다.

Nodejs 애플리케이션에 대한 도커 이미지를 생성합니다. Docker 이미지는 앱을 실행하는 데 필요한 환경과 번들로 제공하는 독립형 단위입니다. 더 이상 라이브러리, 종속성, 패키지 다운로드, 구성 파일 조작 등을 설치할 필요가 없습니다. 머신이 Docker를 지원하는 경우 Docker화된 앱을 실행할 수 있습니다.

이 튜토리얼에서는 먼저 새로운 간단한 Node Js 애플리케이션을 생성해 보겠습니다.

간단한 Node.js 앱 만들기



아래 명령을 사용하여 간단한 nodejs 애플리케이션을 만드십시오.

mkdir nodejs_docker
cd nodejs_docker
npm init


이름을 nodejs_docker로 설정합니다. 다른 옵션의 경우 Enter 키를 눌러 기본값을 확인하십시오.

Npm은 앱의 종속성을 저장할 package.json 파일을 생성합니다. Express 프레임워크를 첫 번째 종속성으로 추가해 보겠습니다.

npm install express --save


파일은 이제 다음과 같아야 합니다.

{
  "name": "nodejs_docker",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.17.1"
  }
}


이제 nodejs_docker 앱을 제공할 간단한 HTTP 서버로 index.js 파일을 생성합니다. 이 코드는 서버를 실행하고 서버가 실행 중이라는 확인 메시지를 표시합니다.

//Load express module with `require` directive
var express = require('express')
var app = express()

//Define request response in root URL (/)
app.get('/', function (req, res) {
  res.send('Hello World!')
})

//Launch listening server on port 8081
app.listen(8081, function () {
  console.log('app listening on port 8081!')
})


앱 실행



애플리케이션을 실행할 준비가 되었습니다.

node index.js


그것을 보려면 브라우저에서 http://localhost:8081/로 이동하십시오.

Node.js 애플리케이션 도커화



노드 응용 프로그램이 시작되고 실행되면 우리가 취할 수 있는 다음 단계는 이 응용 프로그램을 도커화하는 것입니다. 이렇게 하려면 시스템에 Docker를 설치하십시오. 그런 다음 코드베이스에 DockerFile라는 빈 파일을 만듭니다.

코드 편집기에서 DockerFile를 엽니다. 이제 도커 파일을 만들 수 있습니다.
  • 1행: 원하는 노드 버전과 빌드할 이미지를 언급해야 합니다.

  • FROM node:16
    


  • 2행: 컨테이너에서 /app로 작업 디렉토리를 만듭니다. 도커 컨테이너 안에 폴더가 생성됩니다.

  • WORKDIR /app
    


  • 3-4-5행: 애플리케이션을 /app 디렉토리에 복사하고 종속성을 설치합니다. 먼저 package.json를 추가하고 나중에 npm install를 실행하면 package.json 파일을 변경해도 Docker가 종속성을 다시 설치할 필요가 없습니다.

  • COPY package.json /app
    RUN npm ci --only=production && npm cache clean --force
    COPY . /app
    


  • 6행: 이 행은 노드 Docker 이미지가 시작될 때 실행되어야 하는 항목을 설명합니다. 우리가 원하는 것은 애플리케이션을 실행하는 것입니다.

  • CMD node index.js
    


  • 7행: 이제 모든 작업이 컨테이너 내부에서 수행되며 포트를 노출할 때까지 아무도 컨테이너에 액세스할 수 없습니다.

  • EXPOSE 8081
    


  • 최종 Docker 파일

  • Summing up, the whole Dockerfile should look like this:
    
    FROM node:12-alpine3.14
    WORKDIR /app
    COPY package.json /app
    RUN npm ci --only=production && npm cache clean --force
    COPY . /app
    CMD node index.js
    EXPOSE 8081
    


    Docker 이미지 빌드



    지침이 준비되면 남은 작업은 docker build 명령을 실행하고 -t 매개변수로 이미지 이름을 설정하고 Dockerfile이 있는 디렉터리를 선택하는 것입니다.

    docker build -t nodejs_docker .
    


    Docker 컨테이너 실행



    응용 프로그램이 이미지에 구워졌습니다. 저녁 시간! 다음 명령을 실행하여 컨테이너를 시작하고 동일한 포트 8081을 사용하여 호스트에 게시합니다.

    docker run -p 8081:8081 nodejs_docker
    


    감사합니다

    좋은 웹페이지 즐겨찾기