

한 줄 요약
도커는 “내 앱 + 실행 환경”을 하나로 포장해서 어디서든 똑같이 실행하게 해주는 도구
왜 도커가 필요할까?
도커 없을 때의 문제
- 내 컴퓨터에서는 잘 됨
- 서버에서는 안 됨
- 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 |