Docker

[Docker] Dockerfile

비번변경 2021. 12. 21. 22:08

Dockerfile

Docker 이미지가 어떤 단계를 거쳐 빌드돼야 하는지를 담고 있는 텍스트 파일

Docker는 Dockerfile에 나열된 명령문을 차례대로 수행하여 이미지를 생성한다. 

docker build, run

 

형식

INSTRUCTION arguments
# 주석

각 명령문은 명령어(Instruction)으로 시작하며, 여러 개의 인자(Arguments)가 나열될 수 있다.

관례적으로 명령어는 대문자로 작성한다.

 

명령문

  • FROM
    FROM <IMAGE>
    FROM <IMAGE>:<TAG>
    
    # 예시
    FROM ubuntu
    FROM python:3.6​

    Docker 이미지는 base 이미지 위에 새로운 층을 쌓아 새 이미지를 생성한다.
    FROM 명령문은 base 이미지를 지정하기 위해 사용하며, Dockerfile 최상단에 위치한다.
    일반적으로 base 이미지는 Docker Hub와 같은 레포지터리에 공개된 이미지인 경우가 많다. 또한 대부분의 OS 이미지의 공식 릴리즈는 Docker Hub에 공개되어 있다.
  • RUN
    RUN <COMMAND>
    RUN ["<COMMAND>", "<PARAMETER>", "<PARAMETER>"]
    
    # 예시
    RUN apt update
    이미지 빌드 과정에서 필요한 명령어를 실행한다.
  • COPY
    COPY <SOURCE> <DEST>
    
    # 예시
    COPY . /opt/source​
    호스트 컴퓨터에 있는 디렉터리나 파일을 Docker 이미지의 파일 시스템으로 복사한다. 절대 경로와 상대 경로를 지원한다.
  • ENTRYPOINT
    ENTRYPOINT <COMMAND>
    ENTRYPOINT ["<COMMAND>", "<PARAMETER>", "<PARAMETER>"]
    
    # 예시
    ENTRYPOINT FLASK_APP=/opt/source-code/app.py flask run
    이미지를 컨테이너로 생성할 때 실행해야 하는 커맨드를 설정할 때 사용한다. ENTRYPOINT로 지정된 명령이 실행 후 종료되면 컨테이너도 종료된다.

 


참고 문서

https://www.daleseo.com/dockerfile/