D: 🚀 도커(Docker)가 왜 필요할까요? 개발자라면 “내 컴퓨터에서는 되는데…”라는 말 한 번쯤 들어보셨죠? 도커는 이런 문제를 해결해주는 컨테이너 기반 가상화 플랫폼입니다.
- 전통적 방식 : 가상머신(VM)은 무거운 OS 전체를 가상화
- 도커 방식 : 경량의 컨테이너로 애플리케이션과 의존성만 패키징
예시 비교
VM(5GB) vs Docker 컨테이너(50MB) → 도커가 100배 가볍습니다!
📥 1단계: 도커 설치하기 (각 OS별 방법)
Windows 사용자
- Docker Desktop 공식 사이트 접속
- “Get Docker” 버튼 클릭
- 설치 파일 실행 후 WSL 2 설치 유도 (Windows 10/11 필수)
wsl --install
Mac 사용자
# Homebrew로 간편 설치
brew install --cask docker
Linux (Ubuntu) 사용자
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
✅ 설치 확인
docker --version
# Docker version 20.10.17, build 100c701
🛠 2단계: 첫 컨테이너 실행해보기
간단한 Nginx 웹서버 실행
docker run -d -p 8080:80 --name my-nginx nginx
-d
: 백그라운드 실행-p 8080:80
: 호스트 8080포트 ↔ 컨테이너 80포트 연결--name
: 컨테이너 이름 지정
실행 확인
브라우저에서 http://localhost:8080
접속 → nginx 기본 페이지 확인! ✅
📦 3단계: 이미지와 컨테이너 이해하기
이미지 vs 컨테이너
- 이미지 : 실행 템플릿 (예: 우분투, MySQL 등)
- 컨테이너 : 이미지를 실행한 인스턴스
주요 명령어 모음
# 이미지 다운로드
docker pull ubuntu:20.04
# 실행 중인 컨테이너 확인
docker ps
# 모든 컨테이너 확인 (종료된 것 포함)
docker ps -a
# 컨테이너 중지/삭제
docker stop my-nginx
docker rm my-nginx
🧩 4단계: 직접 Dockerfile 만들어보기
간단한 Node.js 앱 예제
-
프로젝트 폴더 생성 후
app.js
작성const http = require('http'); const server = http.createServer((req, res) => { res.end('Hello Docker!'); }); server.listen(3000);
-
Dockerfile
작성 (확장자 없음!)FROM node:14 WORKDIR /app COPY package*.json ./ RUN npm install COPY . . EXPOSE 3000 CMD ["node", "app.js"]
-
이미지 빌드 & 실행
docker build -t my-node-app . docker run -p 3000:3000 my-node-app
💡 도커 활용 팁 5가지
docker-compose.yml
로 여러 컨테이너 한번에 관리docker logs [컨테이너명]
으로 로그 확인docker exec -it [컨테이너] bash
로 컨테이너 내부 접속- Docker Hub에서 공식 이미지 활용 (mysql, redis 등)
.dockerignore
파일로 불필요한 파일 제외
🎉 축하합니다! 이제 당신은 도커의 기본을 마스터했습니다.
👉 다음 단계:
- Docker Compose 학습
- Kubernetes로 컨테이너 오케스트레이션
- CI/CD 파이프라인에 도커 통합
궁금한 점은 댓글로 남겨주세요! 여러분의 첫 도커 컨테이너 사진도 공유해보세요 😊 #Docker #DevOps