본문 바로가기
프로그래밍/리눅스

프로그래밍 「 리눅스 편」Dockerfile : 지침에 따라 Docker 이미지 빌드 및 관리

by grapedoukan 2023. 6. 15.
728x90

Dockerfile은 Docker 이미지를 빌드하는 데 사용되는 일련의 지침이 포함된 텍스트 파일입니다. Docker 이미지는 애플리케이션과 해당 종속성을 캡슐화하여 여러 시스템에서 일관되게 실행할 수 있도록 하는 경량 및 이식 가능한 환경인 컨테이너의 기반입니다.

Dockerfile은 이미지를 만들기 위해 실행되는 일련의 명령으로 구성됩니다. 다음은 일반적으로 사용되는 몇 가지 지침입니다.

  1. FROM: 빌드할 기본 이미지를 지정합니다.
  2. MAINTAINER (사용되지 않음): 이미지의 유지 관리자를 지정합니다(대신 사용).LABEL
  3. LABEL: 이미지에 메타데이터를 추가합니다.
  4. RUN: 이미지에서 명령을 실행하고 새 레이어를 만듭니다.
  5. CMD: 이미지에서 컨테이너를 만들 때 실행할 기본 명령을 제공합니다.
  6. EXPOSE: 컨테이너가 지정된 네트워크 포트에서 수신 대기한다는 것을 Docker에 알립니다.
  7. ENV: 이미지의 환경 변수를 설정합니다.
  8. ADD: 파일, 디렉토리 또는 원격 URL을 이미지에 복사합니다(tar 아카이브를 추출할 수도 있음).
  9. COPY: 파일 또는 디렉토리를 이미지에 복사합니다.
  10. ENTRYPOINT: 이미지에서 컨테이너를 만들 때 실행할 명령을 지정합니다(재정의 가능).
  11. WORKDIR: 후속 지침을 위한 작업 디렉토리를 설정합니다.
  12. USER: 이미지를 실행할 때 사용할 사용자 또는 UID를 설정합니다.
  13. VOLUME: 컨테이너의 볼륨 또는 디렉터리에 대한 탑재 지점을 만듭니다.
  14. ARG: 사용자가 빌드 시 명령을 사용하여 빌더에 전달할 수 있는 변수를 정의합니다.docker build
  15. ONBUILD: 나중에 이미지가 다른 이미지의 베이스로 사용될 때 실행할 트리거 명령을 추가합니다.

Python 웹 애플리케이션에 대한 간단한 Dockerfile의 예는 다음과 같습니다.

# Use an official Python runtime as the base image
FROM python:3.9-slim

# Set the working directory in the container
WORKDIR /app

# Copy the requirements file and install dependencies
COPY requirements.txt .

RUN pip install --no-cache-dir -r requirements.txt

# Copy the application code into the container
COPY . .

# Expose the port the application will listen on
EXPOSE 8000

# Set the command to run when the container starts
CMD ["python", "app.py"]

라는 디렉터리에 Dockerfile이 있고 라는 이미지를 빌드하려고 한다고 가정합니다. Dockerfile은 에 있습니다. Dockerfile에서 이미지를 빌드하려면 다음 명령을 사용할 수 있습니다.myappmyapp:1.0/path/to/myapp/Dockerfiledocker build

docker build -t myapp:1.0 /path/to/myapp

or

docker build -t myapp:1.0 .     //dot represents current folder

Docker는 Dockerfile을 읽고, 각 명령을 실행하고, 지정된 이름과 태그를 사용하여 새 이미지를 만듭니다. 빌드 프로세스 동안 각 명령의 진행률과 출력이 표시됩니다. 빌드가 완료되면 이미지를 사용하여 컨테이너를 만들고 실행할 수 있습니다.

728x90