Docker는 「애플리케이션 + 의존성을 컨테이너에 패키지」하는 도구.
「내 컴퓨터에선 되는데」 문제를 해결, 모든 환경에서 같이 동작.
모던 인프라의 핵심.
VM과의 차이.
VM은 「OS 통째」, 컨테이너는 「OS 커널 공유 + 격리된 사용자 공간」.
컨테이너가 훨씬 가볍고 빠름 — VM이 GB 단위면 컨테이너는 MB.
기본 명령.
sudo apt install docker.io.
docker pull nginx — 이미지 다운로드.
docker run -d -p 80:80 nginx — 컨테이너 시작(백그라운드 -d, 포트 매핑 -p).
docker ps — 실행 중인 컨테이너.
docker stop·rm으로 중지·제거.
Dockerfile.
「내 앱을 이미지로」.
FROM python:3.11 / WORKDIR /app / COPY .
.
/ RUN pip install -r requirements.txt / CMD ["python", "main.py"].
docker build -t myapp .로 빌드 → docker run myapp.
활용.
1) 「개발·운영 환경 통일」 — 모든 환경에서 같은 이미지.
2) 격리 — 한 컨테이너 문제가 다른 데 영향 안 미침.
3) 빠른 배포 — 이미지만 교체하면 새 버전.
4) 로컬 개발 환경 — DB·Redis 등을 컨테이너로 즉시.
「리눅스 + Docker」가 거의 모든 모던 백엔드의 기본.
한 줄 요약
Docker는 컨테이너 표준 — VM보다 가벼움, OS 커널 공유.
docker pull/run/ps/stop, Dockerfile로 이미지 빌드.
환경 통일·격리·빠른 배포·로컬 개발 환경에 핵심.
더 알아볼 것
- docker compose — 다중 컨테이너
- Dockerfile 모범 사례
- distroless·alpine — 작은 이미지