[Supinfo][Docker] Labs 3.1 - 도커로 Express 애플리케이션 컨테이너화하기

박현아·2025년 12월 17일

SUPINFO

목록 보기
9/11

Express 애플리케이션 컨테이너화하기 (Conteneuriser une application Express)

1. Express 앱 만들기

1) lab3.1-express 폴더 생성 (VS Code 사용)

2) 터미널에서 express, ulid 설치

npm install express ulid

3) server.js 파일 생성

const express = require('express');
const { ulid } = require('ulid');

const app = express();

// JSON 파싱을 위해 필요
app.use(express.json());

// 기본 라우트
app.get('/', (req, res) => {
  res.send('Hello, Express!');
});

// JSON 반환 라우트
app.get('/api/data', (req, res) => {
  res.json({
    message: 'JSON data',
    id: ulid()
  });
});

// JSON 받는 라우트
app.post('/api/echo', (req, res) => {
  const receivedData = req.body;
  res.json({
    message: 'Received Data',
    data: receivedData
  });
});

app.listen(3000, () => {
  console.log('Server on http://localhost:3000');
});

2. 로컬에서 express 앱 작동 확인

1) 터미널에서 node server.js로 실행

2) (GET) localhost:3000, (GET) localhost:3000/api/data 확인


3) (POST) localhost:3000/api/echo 확인 (Postman 사용)

3. Dockerfile 작성

(컨테이너로 만들기 위한 문서)

FROM node:20-alpine
WORKDIR /app
COPY . .
# os에 있는 기본 shell 사용함
# RUN npm install
RUN ["npm", "install"]
EXPOSE 3000
CMD ["node", "server.js"]

4. Docker 이미지 빌드

docker build -t lab3.1-express .

5. 컨테이너 실행

docker run --name lab3.1-express -p 3000:3000 lab3.1-express

6. 컨테이너에서 테스트

"2. 로컬에서 express 앱 작동 확인"과 똑같이 확인해주면 된다
로컬에서 작동하는 건지, 컨테이너에서 작동하는 건지 확인해보고 싶다면 컨테이너를 멈추고 테스트해보면 된다!

0개의 댓글