728x90
Dockerfile은 Docker 이미지를 빌드하는 데 사용되는 일련의 지침이 포함된 텍스트 파일입니다. Docker 이미지는 애플리케이션과 해당 종속성을 캡슐화하여 여러 시스템에서 일관되게 실행할 수 있도록 하는 경량 및 이식 가능한 환경인 컨테이너의 기반입니다.
Dockerfile은 이미지를 만들기 위해 실행되는 일련의 명령으로 구성됩니다. 다음은 일반적으로 사용되는 몇 가지 지침입니다.
- FROM: 빌드할 기본 이미지를 지정합니다.
- MAINTAINER (사용되지 않음): 이미지의 유지 관리자를 지정합니다(대신 사용).LABEL
- LABEL: 이미지에 메타데이터를 추가합니다.
- RUN: 이미지에서 명령을 실행하고 새 레이어를 만듭니다.
- CMD: 이미지에서 컨테이너를 만들 때 실행할 기본 명령을 제공합니다.
- EXPOSE: 컨테이너가 지정된 네트워크 포트에서 수신 대기한다는 것을 Docker에 알립니다.
- ENV: 이미지의 환경 변수를 설정합니다.
- ADD: 파일, 디렉토리 또는 원격 URL을 이미지에 복사합니다(tar 아카이브를 추출할 수도 있음).
- COPY: 파일 또는 디렉토리를 이미지에 복사합니다.
- ENTRYPOINT: 이미지에서 컨테이너를 만들 때 실행할 명령을 지정합니다(재정의 가능).
- WORKDIR: 후속 지침을 위한 작업 디렉토리를 설정합니다.
- USER: 이미지를 실행할 때 사용할 사용자 또는 UID를 설정합니다.
- VOLUME: 컨테이너의 볼륨 또는 디렉터리에 대한 탑재 지점을 만듭니다.
- ARG: 사용자가 빌드 시 명령을 사용하여 빌더에 전달할 수 있는 변수를 정의합니다.docker build
- 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
'프로그래밍 > 리눅스' 카테고리의 다른 글
프로그래밍 「 리눅스 편」명령줄 마스터하기: 초보자를 위한 필수 Linux 명령 (0) | 2023.06.15 |
---|---|
프로그래밍 「 리눅스 편」DevOps 엔지니어를 위한 Linux 마스터하기: 성공을 위한 필수 명령 및 사례 (0) | 2023.06.15 |
프로그래밍 「 리눅스 편」프로토타입 코드를 사용한 비동기 프로그래밍의 기본 사항 이해 (1) | 2023.06.15 |
프로그래밍 「 리눅스 편」[윈도우] Excel에서 수식을 사용하여 파일 이름 바꾸기 (0) | 2023.06.15 |
프로그래밍 「 리눅스 편」HackTheBox — 베이글 (1) | 2023.06.15 |