본문 바로가기

여러가지/Docker & AWS

[실습](2) Dockerfile 사용하여 자체 이미지 빌드

● 실습 환경

(OS) Rocky Linux release 8.7 (Green Obsidian)

 

 

Step1. Dcokerfile 생성

※ server.js 파일에서 수신 포트 3001으로 변경합니다.

(파일) Dockerfile

----------------------------------------------------------------------------------------------------------------

FROM node:latest

WORKDIR /app

COPY package.json /app

RUN npm install

COPY . /app

EXPOSE 3001   # 로컬 시스템 <-> 컨테이너

CMD ["npm", "start"]

----------------------------------------------------------------------------------------------------------------

(파일) server.js

----------------------------------------------------------------------------------------------------------------

const http = require('http');

const hostname = '0.0.0.0'; 
const port = 3001;    # 로컬 시스템 <-> 컨테이너

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});
----------------------------------------------------------------------------------------------------------------

(파일) package.json

----------------------------------------------------------------------------------------------------------------

{
  "name": "test",
  "version": "1.0.0",
  "description": "test",
  "main": "server.js",
  "scripts": {
    "start": "node server.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "yjyoo",
  "license": "ISC"
}
----------------------------------------------------------------------------------------------------------------

 

 

Step2. Dockerfile 사용하여 이미지 생성

# docker build -t test:1 .

 

Step3. 이미지 사용하여 컨테이너 생성 및 실행

# docker run -d --name test -p 8080:3001 925fd63f2908   

※ -p : 외부 포트:로컬 시스템<->컨테이너

# docker ps

 

Step4. 방화벽 외부 포트 오픈

# firewall-cmd --permanent --add-port=8080/tpc

# firewall-cmd --reload

# firewall-cmd --list-all

 

Step5. 외부 접속

# netstat -anp | grep 8080

 

'여러가지 > Docker & AWS' 카테고리의 다른 글

[실습](4) nodemon  (0) 2024.06.05
[실습](3) 로컬 <-> 컨테이너 파일 전송  (0) 2024.06.05
[실습](1) 로컬 실행 NodeJS 애플리케이션  (0) 2024.06.04
[실습](0) 선수 작업  (0) 2024.06.04
[정리] server.js  (0) 2024.06.03