ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Dockerfile 설정
    프로그래밍/Docker 2021. 12. 26. 00:07

     

    항상 공식 문서를 참고하자. https://docs.docker.com/engine/reference/builder/

     

    Dockerfile reference

     

    docs.docker.com

     

    ADD

    빌드 컨텍스트나 원격 URL에서 이미지로 파일을 복사한다. 아카이브 파일이 로컬 경로에 추가되면 자동으로 파일이 풀어지게 된다. ADD에 의해서 지원되는 기능의 범위가 매우 크기 때문에 일반적으로 비교적 간단한 COPY 명령을 이용하여 빌드 컨텍스트에 있는 파일들과 디렉터리들을 복사하고 RUN 설정을 curl 또는 wget과 같이 이용하여 원격 자원-같은 설정 안에서 다운로드를 처리하고 삭제할 가능성이 있음-을 다운로드 하는 방법이 선호된다.

     

    CMD

    컨테이너가 시작되는 시점에 해당 설정이 실행된다. ENTRYPOINT가 정의되어 있으면, 설정은 ENTRYPOINT의 인자로 해석 된다. (이 경우, 반드시 실행 방식(JOSN 배열)을 사용해야 한다). CMD 설정은 docker run의 이미지 이름 다음에 오는 인자에 의해 재정의된다. 마지막 CMD 설정만이 유효하며 (기본 이미지에 있는 설정과 함께) 이전의 모든 CMD 설정들은 모두 재정의 된다.

     

    COPY

    빌드 컨텍스트에서 이미지로 파일들을 복사하는 데 사용된다. COPY src dest_와  COPY ["src", "dest"] 형식으로 사용할 수 있는데, 두 형식 모두 빌드 컨텍스트의 src에 있는 파일이나 디럭터리를 컨테이너 내부의 dest로 복사한다. 경로에 공백이 있는 경우네는 JSON 배열 형식으로 작성되어야 한다. 와일드카드를 이용하여 여러 개의 파일들 또는 디렉터리들을 명시할 수도 있다. 빌드 컨텍스트 외부의 src경로를 사용할 수 없다. (예들 들면 /another_dir/myfile같은 경로는 작동하지 않는다)

     

    ENTRYPOINT

    컨테이너가 시작될 때 실행되어야 하는 실행 파일(과 기본 인자들)을 설정한다. docker run의 이미지 이름 다음에 오는 모든 CMD 설정 또는 인자들은 실행 파일의 매개 변수로 전달된다. ENTRYPOINT 설정은 주어진 모든 인자들을 해석하기 전에 변수와 서비스들을 초기화하는 "시작" 스크립트를 제공하기 위해 사용되곤 한다.

     

    ENV

    이미지 내부의 환경 변수들을 설정한다. 해당 환경 변수들은 그 다음에 오는 설정에서 사용된다. 

     

    EXPOSE

    컨테이너가 지종된 포트(들)을 통하여 수신을 하는 프로세스를 가지고 있음을 도커에게 알려주는 역할을 한다. 컨테이너를 연결하거나 docker run을 실행하면서 -P 인자를 주어서 포트를 게시할 때, 도커에 의해서 해당 정보가 사용된다. EXPOSE 설정만으로는 네트워킹에 영향을 미치지 않는다.

     

    FROM

    도커파일의 기본 이미지를 설정하며, 그 뒤의 설정들은 해당 이미지 위에 만들어진다. 기본 이미지는 IMAEG:TAG 형식으로 명시된다. 만약 태그가 생략되면 latset가 사용된 것으로 간주한다. 하지만 항상 태그에 특정 버전을 설정하는 것이 권장된다. 반드시 Dockerfile의 첫 번째 설정으로 명시되어야 한다.

     

    MAINTAINER

    여기에 주어진 문자열은 이미지의 "Author" 메타데이터로 설정된다. docker inspect -f {{.Author}} IMAGE를 실행하면, 해당 정보를 읽어올 수 있다. 통산 이미지지의 유지 관리자 이름과 연락처 상세 정보들을 설정하는 데 사용된다.

     

    ONBUILD

    이미지가 다른 이미지의 기본 계층으로 사용될 때 향후 실행될 설정을 지정하기 위해서 사용된다. 하위 이미지에 추가되는 데이터를 처리하는 데 유용하게 사용될 수 있다.(지정된 데렉터리에서 코드를 복사하고 데이터를 기반으로 스크립트를 실행하는 설정을 예로 들 수 있다)

     

    RUN

    주어진 설정을 컨테이너 내부에서 실행하고 결과를 반영한다.

     

    VOLUME

    볼륨으로 사용될 특정 파일이나 디텍터리를 선언하는 데 사용된다. 이미지에 이미지 해당 파일이나 디렉터리가 있으면, 컨테이너가 시작될 때 볼륨으로 해당 파일이나 디렉터리가 복사된다. 여러 개의 인자가 주어지면 해당 인자들은 여러 볼륨 구문으로 해석이 된다. 이식성과 보안적인 이유로 인해서 도커파일 내부에 볼륨으로 사용될 호스트 디렉터리를 명시할 수 없다. 

     

    WORKDIR

    RUN, CMD, ENTRYPOINT, ADD, COPY 설정에서 사용될 작업 디렉터리를 설정한다. 여러 차례 사용될 수 있으며 상대 경로의 사용도 가능한데 앞서 명시된 WORKDIR의 상대 경로로 해석된다.

    댓글

Designed by Tistory.