Dockerfile Common Instructions

이정훈·2024년 8월 7일

Docker

목록 보기
13/34

Structure of a Dcokerfile

Dockerfile에서 사용되는 명령어들을 알아보기 전에 Dockerfile의 기본적인 형식을 보겠습니다.
Dockerfile의 각 명령어는 다음과 같은 형식을 가집니다.

INSTRUCTION arguments

명령어가 앞에 나오고 그 뒤에 해당 명령어에 필요한 인자들을 가집니다.
아래는 Docfile의 예시입니다.

# Use an official Python runtime as a parent image
FROM python:3.7-slim

# Set the working directory to /app
WORKDIR /app

# Copy the current directory contents into the container at /app
COPY . /app

# Install any needed packages specified in requirements.txt
RUN pip install --trusted-host pypi.python.org -r requirements.txt

# Make port 80 available to the world outside this container
EXPOSE 80

# Define environment variable
ENV NAME World

# Run app.py when the container launches
CMD ["python", "app.py"]

Common Dockerfile Instructions

  • FROM
    FROM은 무조건 Dockerfile 맨 앞에 있어야 합니다.
    이 명령어를 통해 기본 이미지를 가져옵니다.

  • WORKDIR
    작업 디렉토리를 설정합니다.
    작업 디렉토리는 RUN, CMD, ENTRYPOINT, COPRY, ADD와 같은 명령어들이 실행되는 디렉터리입니다.
    만약 WORKDIR 명령어가 없다면 Docker이 자동으로 생성해서 사용합니다.

  • COPY
    호스트에서 파일이나 디렉터리들을 복사하여 컨테이너 파일 시스템에 붙여넣습니다.

  • ADD
    COPY와 비슷하나 더 많은 일이 가능합니다.
    예를 들어 원격 URL에서 파일을 다운로드하거나 압축 해제가 가능합니다.

  • RUN
    새로운 레이어로써 이미지 내에서 커맨드를 실행합니다.

  • CMD
    이미지를 통해 실행될 컨테이너에서 기본적으로 실행될 명령어를 지정하는 역할입니다.

  • ENTRYPOINT
    CMD와 비슷합니다.
    다른 점은 docker run명령어를 사용하면 CMD의 경우 덮어 씌워지지만 ENTYPOINT의 기존 것에 추가하는 형식으롤 사용됩니다.

  • EXPOSE
    컨테이너가 특정 네트워크 포트에서 열리도록 설정합니다.

  • ENV
    컨테이너에서 사용될 환경 변수를 설정합니다.

위에서 만든 dockerfile은 아래 명령어로 이미지로 만들 수 있습니다.

docker build -t <image_name>:<tage>
profile
기록으로 흔적을 남깁니다.

0개의 댓글