도커파일(Dockerfile)

박나진·2024년 6월 19일

Docker

목록 보기
6/7

Dockerfile이란?

  • Dockerfile은 도커 이미지를 생성하기 위한 스크립트
  • 이미지에 필요한 모든 구성 요소를 정의하고 자동화할 수 있음
  • Dockerfile을 통해 이미지를 체계적이고 재현 가능하게 생성할 수 있음

Dockerfile 작성 방법

  1. 베이스 이미지 선택

    • 이미지 생성의 기반이 되는 베이스 이미지를 선택
    • FROM 명령어로 베이스 이미지를 지정
  2. 애플리케이션 설치 및 구성

    • RUN 명령어로 패키지 설치, 소스 코드 복사 등 수행
    • COPY 또는 ADD 명령어로 파일을 이미지에 복사
    • ENV 명령어로 환경 변수 설정
  3. 포트 노출

    • EXPOSE 명령어로 컨테이너에서 사용할 포트 지정
    • 컨테이너 외부에서 해당 포트로 접근할 수 있음
  4. 실행 명령 지정

    • CMD 명령어로 컨테이너 실행 시 수행할 명령 지정
    • ENTRYPOINT 명령어로 기본 실행 명령 설정
  5. 기타 옵션

    • WORKDIR 명령어로 작업 디렉터리 설정
    • VOLUME 명령어로 호스트와 공유할 볼륨 지정

Dockerfile 빌드 방법

  1. Dockerfile 작성

    • 애플리케이션에 필요한 구성 요소를 Dockerfile에 정의
  2. 이미지 빌드

    • docker build 명령어로 Dockerfile을 기반으로 이미지 생성
    • 예: docker build -t my-app:v1 .
  3. 이미지 태깅

    • docker tag 명령어로 이미지에 태그 추가
    • 예: docker tag my-app:v1 my-username/my-app:v1
  4. 이미지 확인

    • docker images 명령어로 생성된 이미지 확인

Dockerfile 작성 예시

FROM ubuntu:20.04

RUN apt-get update && apt-get install -y \
    apache2 \
    && rm -rf /var/lib/apt/lists/*

COPY . /var/www/html/
EXPOSE 80
CMD ["apache2ctl", "-D", "FOREGROUND"]

Dockerfile 주요 명령어

  • FROM: 베이스 이미지 지정
  • RUN: 이미지 빌드 중 명령 실행
  • COPY: 호스트 파일을 이미지에 복사
  • ADD: 호스트 파일 또는 URL을 이미지에 추가
  • ENV: 환경 변수 설정
  • EXPOSE: 포트 노출
  • WORKDIR: 작업 디렉터리 설정
  • CMD: 컨테이너 실행 시 기본 명령 지정
  • ENTRYPOINT: 컨테이너 실행 시 기본 진입점 설정
  • VOLUME: 호스트와 공유할 볼륨 지정
profile
백엔드 개발자

0개의 댓글