본문으로 건너뛰기
Advertisement

Docker 및 컨테이너

Docker는 어플리케이션을 가볍고 독립적인 컨테이너(Container)로 패키징하여 어디서든 일관되게 실행할 수 있게 해주는 도구입니다.

1. 왜 Docker인가?

  • 환경 일관성: "내 컴퓨터에서는 되는데?" 문제를 해결합니다. 개발, 테스트, 운영 환경을 완벽히 일치시킵니다.
  • 격리: 서로 다른 라이브러리 버전을 사용하는 앱들을 하나의 서버에서 안전하게 실행할 수 있습니다.
  • 배포 속도: 이미지를 사용하여 인프라 구성 과정을 생략하고 즉시 앱을 띄울 수 있습니다.

2. Docker 핵심 개념

  • 이미지 (Image): 실행 파일, 라이브러리, 설정 등이 포함된 템플릿(붕어빵 틀)
  • 컨테이너 (Container): 이미지를 실행한 상태(붕어빵)
  • Dockerfile: 이미지를 만들기 위한 명세서

3. Dockerfile 작성 예시

# 베이스 이미지 설정
FROM node:18

# 작업 디렉토리 설정
WORKDIR /app

# 의존성 설치
COPY package*.json ./
RUN npm install

# 소스 복사 및 실행
COPY . .
CMD ["npm", "start"]

4. 핵심 명령어

docker build -t my-app .  # 이미지 빌드
docker run -p 8080:80 my-app # 컨테이너 실행 (포트 바인딩)
docker ps # 실행 중인 컨테이너 확인
docker stop [ID] # 컨테이너 중지

다음 장에서는 코드 변경을 자동으로 감지하고 배포하는 CI/CD에 대해 배웁니다.

Advertisement