포스트

DockerFile 정리

도커 이미지

DockerFile

  • 인프라 구성을 기술한 파일
  • 도커 파일은 도커 이미지를 빌드하기 위한 스크립트로, 컨테이너 환경을 정의하고 구성하는 데 사용된다.

기본적인 도커 파일을 작성하는 방법

  1. 베이스 이미지 선택
    • 도커 파일은 기본적으로 어떤 이미지를 기반으로 할지 정해야 한다.
    • 예를 들어, Java 어플리케이션을 위한 베이스 이미지로 openjdk:11-jre-slim을 사용한다.
      1
      
       FROM openjdk:11-jre-slim  
      
  2. 작업 디렉토리 설정
    • 이미지 내에서 작업할 디렉토리를 설정한다.
    • 보통 /app과 같이 의미 있는 디렉토리를 선택한다.
      1
      
       WORKDIR /app
      
  3. 애플리케이션 파일 복사
    • 실제 애플리케이션 파일들을 도커 이미지로 복사한다.
    • 현재 디렉토리의 JAR 파일을 이미지로 복사하는 예이다.
      1
      
      COPY target/myapp.jar /app
      
  4. 포트 노출
    • 애플리케이션이 사용하는 포트를 노출한다.
    • 예를 들어, 8080번 포트를 사용하는 경우 다음과 같이 작성한다.
      1
      
       EXPOSE 8080
      
  5. 실행 명령어 정의
    • 컨테이너가 시작될 때 실행되어야 하는 명령어를 정의한다.
    • Java 어플리케이션의 경우 java -jar 명령어를 사용한다.
      1
      
      CMD ["java", "-jar", "myapp.jar"]
      

명령어 정리

베이스 이미지 지정

1
FROM 이미지이름

명령 실행

1
RUN echo hello \

컨테이너 실행 명령

1
CMD /cdoe/run-app

라벨 설정

1
LABEL version="1.0"

포트 익스포트

1
EXPOSE 8080

환경변수

1
ENV MY_NAME="SYBOOSYBOO"

파일/디렉토리 추가

1
ADD test.txt

파일 복사

1
COPY test.txt

컨테이너 실행 명령

1
ENTRYPOINT ["top", "-b"]

볼륨 마운트

1
VOLUME /myvol

사용자 지정

1
USER SYBOOSYBOO

작업자 디렉토리

1
WORKDIR /path/to/workdir

DcokerFile 안의 변수

1
ARG buildno

빌드 완료 후 실행되는 명령

1
2
ONBUILD ADD . /app/src
ONBUILD RUN /usr/local/bin/python-build --dir /app/src

시스템 콜 시그널 설정

1
STOPSIGNAL signal

컨테이너의 헬스 체크

1
2
HEALTHCHECK --interval=5m --timeout=3s \
  CMD curl -f http://localhost/ || exit 1

기본 쉘 설정

1
SHELL ["cmd", "/S", "/C"]

주석

1
# 주석은 이렇게 작성한다.

# 출처

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.