JSCODE Logo
프로그래밍 과외블로그후기멘토진
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호
학원 명칭 : 제이에스코드(JSCODE)원격학원학원설립ㆍ운영 등록번호 : 제6063호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2025 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침
← 블로그 목록으로 돌아가기

[실습] 웹 프론트엔드 프로젝트(Next.js)를 Docker로 배포하기

JSCODE 박재성
JSCODE 박재성
2025-12-01
author
JSCODE 박재성
category
Docker
createdAt
Dec 1, 2025
series
비전공자도 이해할 수 있는 Docker 입문
slug
practice-for-running-nextjs-with-docker
type
post
updatedAt
Dec 1, 2025 12:07 PM

✅ 웹 프론트엔드 프로젝트(Next.js)를 Docker로 배포하기

  1. Next.js 프로젝트 만들기
    1. $ npx create-next-app@latest
       
  1. Dockerfile 작성하기
    1. Dockerfile
      FROM node:20-alpine WORKDIR /app COPY . . RUN npm install RUN npm run build EXPOSE 3000 ENTRYPOINT [ "npm", "run", "start" ]
      • 심화) Docker 이미지 생성 시 캐시를 활용해서 최적화할 수 있는 방법이 있다. 입문자한테는 불필요한 내용이기 때문에 별도로 설명하지 않았다. 관심 있는 분들은 아래 링크를 참고하자.
        • Docker Layer와 Cache
          Docker Layer
          Docker Layer와 Cache
          https://medium.com/@hee98.09.14/docker-layer와-cache-574c12a1e9f7
          Docker Layer와 Cache
      • alpine : 불필요한 프로그램을 포함하지 않고 이미지 크기를 최소화한 버전. 실제 배포 할 때도 되도록이면 alpine 버전을 사용한다.
       
  1. .dockerignore 작성하기
    1. .dockerignore
      node_modules
      이미지를 생성할 때 npm install을 통해 처음부터 깔끔하게 필요한 의존성만 설치한다. 따라서 호스트 컴퓨터에 있는 node_modules는 컨테이너로 복사해갈 필요가 없다.
       
  1. Dockerfile을 바탕으로 이미지 빌드하기
    1. $ docker build -t my-web-server .
       
  1. 이미지가 잘 생성됐는 지 확인하기
    1. $ docker image ls
       
  1. 생성한 이미지를 컨테이너로 실행시켜보기
    1. $ docker run -d -p 80:3000 my-web-server
       
  1. 컨테이너 잘 실행되고 있는 지 확인하기
    1. $ docker ps
       
  1. localhost:80으로 들어가보기
    1. notion image
       
  1. 실행시킨 컨테이너 중지 / 삭제하기, 이미지 삭제하기
    1. $ docker stop {컨테이너 ID} $ docker rm {컨테이너 ID} $ docker image rm {이미지 ID}
       
 

✅ 그림으로 이해하기

notion image
author
category
Docker
createdAt
series
비전공자도 이해할 수 있는 Docker 입문
slug
type
series-footer
updatedAt
Jan 12, 2026 12:04 AM
📎
이 글은 비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편) 강의의 수업 자료 중 일부입니다.