Dockerfile이란??
#Docker
2024-01-31
Dockerfile이란??

Dockerfile이란? 🐳

Dockerfile은 애플리케이션을 실행하기 위한 환경을 코드로 정의하는 파일이다. 기존에는 개발 환경을 구성할 때 필요한 패키지를 설치하고 환경을 설정하는 과정을 매번 반복해야 했다. 하지만 Dockerfile을 사용하면 이러한 과정들을 자동화할 수 있다. Dockerfile에 필요한 패키지, 소스코드, 명령어, 환경 변수를 기록해두고 이를 기반으로 빌드하면 하나의 도커 이미지가 생성된다. 이를 통해 개발자는 동일한 환경을 빠르게 재현할 수 있으며, 애플리케이션의 빌드 및 배포 과정도 간소화된다.

Dockerfile 예시 📜

아래는 기본적인 Dockerfile의 예시이다.

# 사용할 기본 이미지 설정

FROM ubuntu:14.04

# 이미지에 목적을 명시

LABEL "purpose"="practice"

# 패키지 목록 업데이트

RUN apt-get update

# Apache2 웹 서버 설치

RUN apt-get install apache2 -y

# 로컬 파일을 컨테이너 내 특정 경로에 복사

ADD test.html /var/www/html

# 작업 디렉토리 설정

WORKDIR /var/www/html

# 추가적인 파일 생성 (test2.html에 'hello' 추가)

RUN ["/bin/bash", "-c", "echo hello >> test2.html"]

# 컨테이너에서 노출할 포트 지정

EXPOSE 80

# 컨테이너 실행 시 실행할 명령어 설정

CMD apachectl -DFOREGROUND

Dockerfile의 주요 명령어 🛠️

  • FROM : 사용할 기본 이미지를 설정한다.

  • LABEL : 해당 이미지의 정보를 메타데이터로 추가한다.

  • RUN : 컨테이너를 빌드할 때 실행할 명령어를 지정한다.

  • ADD : 로컬 파일을 컨테이너 내 특정 위치로 복사한다.

  • WORKDIR : 이후 실행될 명령어의 작업 디렉토리를 설정한다.

  • EXPOSE : 컨테이너가 사용할 포트를 지정한다.

  • CMD : 컨테이너 실행 시 기본적으로 실행할 명령어를 설정한다.

Dockerfile을 활용하면 개발 환경을 쉽게 공유하고 배포할 수 있다. 특히, CI/CD 파이프라인과 결합하면 개발, 테스트, 배포 과정을 더욱 효율적으로 자동화할 수 있다.

댓글

댓글을 불러오는 중...
Table of Contents