STUDY

웹 개발 파이프라인 구축 - 도커

Lim임 2025. 12. 15. 17:51


한 줄 요약

도커는 “내 앱 + 실행 환경”을 하나로 포장해서 어디서든 똑같이 실행하게 해주는 도구


왜 도커가 필요할까?

도커 없을 때의 문제

  • 내 컴퓨터에서는 잘 됨
  • 서버에서는 안 됨
  • Node 버전, OS, 라이브러리 차이
  • “환경 설정 문서 보고 따라 하세요” 지옥 😇

환경 차이를 없애려고 등장한 게 도커


도커의 핵심 개념 3가지 ⭐

 이미지 (Image)

  • 실행 설계도
  • 앱 + 런타임 + 라이브러리 포함
  • 변경 불가 (Immutable)
 
Image = “이렇게 실행해라”

 컨테이너 (Container)

  • 이미지를 실제로 실행한 상태
  • 가볍고 빠름
 
Image (설계도) ↓ 실행 Container (실행 중인 프로세스)

 Dockerfile

  • 이미지를 만드는 레시피
  • “어떤 OS, 어떤 명령, 어떤 파일” 정의
 
FROM node:18 WORKDIR /app COPY . . RUN npm install CMD ["npm", "start"]

도커는 VM이랑 뭐가 달라?

구분VMDocker
OS 포함 포함 ❌ (호스트 OS 공유)
무게 무거움 가벼움
속도 느림 빠름
실행 단위 전체 OS 프로세스

👉 도커는 가상 OS가 아니라 격리된 프로세스


도커가 해주는 것

환경 통일

  • 로컬 / 서버 / CI 모두 동일

 빠른 실행

  • 수 초 만에 컨테이너 실행

배포 단순화

  • “이미지 하나”만 배포

도커의 기본 흐름 (실무 기준)

 
1. Dockerfile 작성 2. 이미지 빌드 3. 컨테이너 실행
 
docker build -t my-app . docker run -p 3000:3000 my-app

프론트엔드 기준 도커 활용 예

React 앱 배포 구조

 
React build ↓ Nginx 컨테이너 ↓ Docker Image ↓ 서버 / Kubernetes

간단한 예 (Nginx)

 
FROM nginx:alpine COPY build /usr/share/nginx/html

도커 vs 쿠버네티스 관계

  • 도커: 컨테이너를 만들고 실행
  • 쿠버네티스: 컨테이너를 관리하고 운영
 
Docker → Container Kubernetes → Container Orchestration

언제 도커를 꼭 써야 할까?

✅ 팀 개발
✅ 배포 자동화
✅ 마이크로서비스
✅ 쿠버네티스 사용 예정

❌ 혼자 하는 단일 파일 연습 → 선택


면접에서 한 줄 답변

“도커는 애플리케이션과 실행 환경을 이미지로 패키징하여
어디서나 동일한 실행 환경을 보장하는 컨테이너 기술입니다.”

'STUDY' 카테고리의 다른 글

CI/CD Jenkins Docker Kubernetes  (1) 2025.12.17
웹 개발 파이프라인 구축 - 쿠버네티스  (0) 2025.12.16
오픈소스(5)  (0) 2025.12.14
오픈소스(4) + mongoDB, elasticsearch 라이선스 논란  (0) 2025.12.12
오픈소스(3)  (0) 2025.12.11