728x90
Dockerfile이란?
- Dockerfile은 **도커 이미지(Docker Image)**를 빌드하기 위한 설정 파일입니다.
- 이 파일에는 컨테이너를 구성하고 실행할 명령들이 순서대로 포함됩니다.
- 결과적으로 Dockerfile을 통해 반복적이고 일관된 환경에서 애플리케이션을 실행할 수 있는 도커 이미지를 만듭니다.
Dockerfile의 주요 구성 요소와 역할
- 베이스 이미지 설정:
- FROM: 이미지 빌드를 시작할 기본 이미지를 지정합니다.
FROM node
- FROM: 이미지 빌드를 시작할 기본 이미지를 지정합니다.
- 작업 디렉토리 설정:
- WORKDIR: 컨테이너 내에서 명령이 실행될 디렉토리를 지정합니다.
WORKDIR /app
- WORKDIR: 컨테이너 내에서 명령이 실행될 디렉토리를 지정합니다.
- 파일 복사:
- COPY: 로컬 파일을 컨테이너 내부로 복사합니다.
COPY . /app
- COPY: 로컬 파일을 컨테이너 내부로 복사합니다.
- 종속성 설치:
- RUN: 도커 이미지 빌드 중에 명령을 실행합니다.
RUN npm install
- RUN: 도커 이미지 빌드 중에 명령을 실행합니다.
- 포트 노출:
- EXPOSE: 컨테이너가 외부와 통신할 포트를 설정합니다.
EXPOSE 80
- EXPOSE: 컨테이너가 외부와 통신할 포트를 설정합니다.
- 애플리케이션 시작 명령:
- CMD: 컨테이너가 시작될 때 실행할 명령을 지정합니다.
CMD ["node", "server.js"]
- CMD: 컨테이너가 시작될 때 실행할 명령을 지정합니다.
Dockerfile과 이미지/컨테이너의 관계
- 도커 이미지: Dockerfile에 정의된 명령을 실행해 만들어진 템플릿입니다.
- 여러 개의 컨테이너가 이 이미지를 기반으로 실행될 수 있습니다.
- 컨테이너: 이미지를 기반으로 실행되는 실제 애플리케이션 인스턴스입니다.
Dockerfile 사용 흐름
- 이미지 빌드:
- 현재 디렉토리에 있는 Dockerfile을 사용해 my-app 이미지를 생성합니다.
-
docker build -t my-app .
- 컨테이너 실행:
- 컨테이너를 실행하고, 로컬 머신의 포트 80과 컨테이너의 포트 80을 연결합니다.
-
docker run -p 80:80 my-app
마무리
Dockerfile을 사용하면 코드와 환경을 함께 패키징해 일관성 있는 개발과 배포 환경을 구축할 수 있습니다. 이를 통해 팀 내 개발자들이 동일한 환경에서 작업하고, 운영 환경에서도 문제가 없도록 합 수 있습니다.
728x90
'도커' 카테고리의 다른 글
[Docker] 정리(3) - Managing Images & Containers (0) | 2024.10.30 |
---|---|
[Docker] 정리(1) - 이미지 & 컨테이너 (1) | 2024.09.22 |