도커를 사용하여 노드 js 애플리케이션을 실행하는 방법

10771 단어 nodejavascriptdocker
이 블로그에서는 노드 js 애플리케이션을 빌드하고 이미지를 생성하며 Docker를 사용하여 실행하는 방법을 보여드리겠습니다.

노드 js 애플리케이션을 만들어 봅시다.

mdkir nodejsapp
cd nodejsapp


이제 다음 명령을 사용하여 package.json 파일을 초기화합니다.

npm init


package.json 파일이 생성되면 이제 Express를 설치할 수 있습니다.

npm install express


따라서 package.json 파일은 다음과 같습니다.

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

index.js로 웹 사이트 구축을 시작하겠습니다.

const express = require("express");
const app = express();
const port=3000;

app.get("/", (req, res) => {

res.sendFile(__dirname + "/index.html");

})

app.get("/page", (req, res) => {

res.sendFile(__dirname + "/page.html");

})

app.listen(port, () => {
  console.log(`running at port ${port}`);
});


두 개의 파일index.htmlpage.html를 만들어 봅시다.

<!-- index.html -->

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Node JS</title>
</head>
<body>
    <h1>Node JS</h1>
    <p> Hello from Home   </p>
    <br />
    <a href="/page">next page</a>
</body>
</html>



<!-- page.html  -->

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Node JS Page</title>
</head>
<body>
    <h1>Second Page</h1>
    <p> Hello from page 2</p>
    <br />
    <a href="/">Home page</a>
</body>
</html>


루트 디렉터리에서 Dockerfile.dockerignore 를 만듭니다.

FROM node:14-alpine

RUN mkdir -p /home/app

COPY ./* /home/app/

EXPOSE 3000

WORKDIR /home/app

RUN npm install

CMD ["npm", "start"]



node_modules/
package-lock.json


도커 이미지를 빌드하려면 다음 명령을 실행하십시오.

docker build -t nodeapp:latest .
          or
docker build -t <dockerhub_name>/<app_name>:<tag> . 


Docker 이미지가 빌드되었는지 확인하려면 터미널을 열고 docker images를 입력하십시오. 아래와 같이 출력이 표시됩니다.

REPOSITORY            TAG             IMAGE ID       CREATED             SIZE
nodeapp               latest          e0a978b53566   8 seconds ago       123MB



이제 nodeapp이라는 도커 이미지를 실행해 보겠습니다(제 경우에는).

docker run -p 3001:3000 e0a978b53566


내 응용 프로그램을 포트 3001에 바인딩했기 때문에 해당 포트에서 실행됩니다. 적합하다고 생각되는 대로 자유롭게 수정할 수 있습니다.

docker run -p <PORT>:3000 <IMAGE ID>


결과적으로 애플리케이션이 실행 중인 것을 볼 수 있습니다http://localhost:3001/.



이 블로그가 여러분에게 도움이 되었으면 합니다.

좋은 웹페이지 즐겨찾기