ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Dockerfile 명령어2(ONBUILD , STOPSIGNAL,HEALTHCHECK)
    Docker 2021. 3. 26. 14:03

    도커 파일 명령어에 한 종류인 (ONBUILD , STOPSIGNAL , HEALTHCHECK) 에 대해서 아라보자!

    -- ONBUILD : 빌드된 이미지를 기반으로 하는 다른 이미지가 Dockerfile로 생성 될 때 실행할 명령어를 추가합니다. 

    간단한 예제를 작성해보자.

    FROM ubuntu:18.04
    RUN ls /
    ONBUILD RUN mkdir /ONBUILD_TEST_DIR

    해당 이미지를 작성해서 빌드해보겠다.

    아래 와 같이 실행된다  

    간단히 설명하자면 ls 로 루트에 내용을 확인하고 onbuild run 옵션으로 "ONBUILD_TEST_DIR"을 생성해줬다. 

    docker run 명령으로 해당 이미지를 실행하고 루트에 ls 를 쳐보니 

    ONBUILD RUN 명령을 수행하지 않았다.

    그렇다면 ONBUILD 명령은 해당 이미지를 기반으로 다른이미지가 생성 될때 실행된다고 했는데 한번 실행해 보겠다.

    FROM testfile:0.0
    
    RUN ls /

    위 와같은 이미지 를 생성해서 Dockerfile2 라고 하겠다.

    그렇다 ONBUILDER 는 해당 이미지를 실행할때가 아닌 해당이미지를 상속(?) 할 때 실행되는 개념이다.

     

    --STOPSIGNAL SIGKILL : 컨테이너가 정지될 때 사용될 시스템 콜의 종류를 지정합니다. 디폴트 값은 SIGTERM 으로 설정된다고 하네여 이것을 SIGKILL로 한번 지정해 보겠습니다.

    아래 와 같은 이미지를 작성하겟습니다.

    FROM ubuntu:18.04
    STOPSIGNAL SIGKILL

     

    해당 이미지를 실행했을 때 입니다.  STOPSIGNAL이 SIGKILL 로 설정 되어있네요.

     

    --HEALTHCHECK: HEALTHCHECK는 이미지로부터 생성된 컨테이너에서 동작하는 애플리케이션의 상태를 체크하도록 설정합니다. 컨테이너 내부에서 동작 중인 애플리케이션의 프로세스가 종료되지 않았으나 애플리케이션이 동작하고 있지 않은 상태를 방지하기 위해 사용될 수 있습니다.

    FROM nginx
    RUN apt-get update -y && apt-get install curl -y
    HEALTHCHECK --interval=1m --timeout=3s --retries=3 CMD curl -f http://localhost || exit

    도커파일 실행시 위 와 같이 이미지를 만들면 핼스채크 기능이 실행된다

    해당 구분은 1분마다 3초 이상 소요대면 타임아웃 3회 타임아웃이 발생하면 Unhealthy 로 변경.

     

     

    'Docker' 카테고리의 다른 글

    [Docker] 도커 이미지와 도커 컨테이너 다루기  (0) 2022.02.27
    [Docker] 도커란?  (0) 2022.02.27
    Docker 메모리 관련 이슈 정리  (0) 2021.01.19
    Docker Postgres 컨테이너 띄우기!  (0) 2020.11.14
    Dockerfile 명령어 정리  (0) 2020.10.12

    댓글

Designed by Tistory.