v.02 / 2026
HOME / PROGRAMMING / №005 2026.01.25
← Programming // 005 · PROGRAMMING / DEVOPS

Docker 입문 — 컨테이너로 개발 환경 통일하기

Docker란?

Docker는 애플리케이션을 컨테이너라는 격리된 환경에서 실행하는 플랫폼입니다. “내 컴퓨터에서는 되는데”라는 말을 없애줍니다.

핵심 개념

  • Image: 실행 환경의 스냅샷 (읽기 전용)
  • Container: 이미지를 실행한 인스턴스
  • Dockerfile: 이미지를 만드는 설계도
  • Registry: 이미지 저장소 (Docker Hub)

Dockerfile 작성

FROM node:20-alpine

WORKDIR /app

COPY package*.json ./
RUN npm ci --only=production

COPY . .

EXPOSE 3000
CMD ["node", "server.js"]

기본 명령어

# 이미지 빌드
docker build -t my-app:1.0 .

# 컨테이너 실행
docker run -d -p 3000:3000 --name my-app my-app:1.0

# 실행 중인 컨테이너 확인
docker ps

# 로그 확인
docker logs -f my-app

# 컨테이너 접속
docker exec -it my-app sh

# 정지 및 제거
docker stop my-app && docker rm my-app

Docker Compose

여러 서비스를 한 번에 관리할 때.

# docker-compose.yml
services:
  app:
    build: .
    ports:
      - "3000:3000"
    environment:
      - DATABASE_URL=postgres://user:pass@db:5432/mydb
    depends_on:
      - db

  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: pass
      POSTGRES_DB: mydb
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:
docker compose up -d    # 백그라운드 실행
docker compose down     # 중지
docker compose logs -f  # 로그
// RELATED №053 git branch는 포인터, git worktree는 작업 공간 — 언제 무엇을 쓸까 [PROGRAMMING] Git 2026.05.04 №052 Roboflow Safety Helmet ONNX 모델이란? 안전모 감지의 개념과 활용 [PROGRAMMING] AI 2026.05.04 №051 LLM Wiki: 위키 유지보수를 LLM에게 맡기다 [PROGRAMMING] Tools 2026.05.04
목록으로