[DOCKER] DOCKERFILE 명령어 정리

2022. 5. 11. 23:22·DOCKER
728x90

DockerFile 명령어 요약

명령어 용도
FROM base 이미지 설정
WORKDIR 작업 디렉터리 설정
RUN 이미지 빌드 시 커맨드 실행
ENTRYPOINT 이미지 실행 시 항상 실행되야 하는 커맨드 설정
CMD 이미지 실행 시 디폴트 커맨드 or 파라미터 설정
EXPOSE 컨테이너가 리스닝할 포트 및 프로토콜 설정
COPY/ADD 이미지의 파일 시스템으로 파일 또는 디렉터리 복사
ENV 환경 변수 설정
ARG 빌드 시 넘어올 수 있는 인자 설정

DockerFile 포맷

# 주석(Comment)
명령어(INSTRUCTION) 인자(arguments)
  • 각 명령문은 명령어로 시작하고 여러 개의 인자가 따라오며, 인자와 구분이 쉽도록 명령어는 모두 대문자로 써줘야함

FROM 

FROM <이미지>
FROM <이미지>:<태그>
  • FROM 명령문은 base 이미지를 지정해주기 위해 사용, 보통 Dockerfile내에서 최상단에 위치

WORKDIR

WORKDIR <이동할 경로>
  • 컨테이너 상에서 작업 디렉토리 전환시 사용
  • WORKDIR 명령문으로 작업 디렉터리를 전환하면 그 이후 명령문은 해당 디렉터리 기준으로 실행

RUN

RUN ["<커맨드>", "<파라미터>", "<파라미터>"]
RUN <전체 커맨드>
  • 이미지 빌드 과정에서 필요한 커맨드를 실행하기 위해 사용

ENTRYPOINT

ENTRYPOINT ["<커맨드>", "<파라미터>", "<파라미터>"]
ENTRPPOINT <전체 커맨드>
  • 이미지를 컨테이너로 띄울 때 항상 실행하는 커맨드를 지정하기 위해 사용
  • ENTRYPOINT 명령문으로 지정된 커맨드가 실행되고, 커맨드로 실행된 프로세스가 죽을 때 컨테이너도 따라서 종료가 됨

CMD

CMD ["<커맨드>","<파라미터>","<파라미터>"]
CMD ["<파라미터>","<파라미터>"]
CMD <전체 커맨드>
  • 해당 이미지를 컨테이너로 띄울 때 디폴트로 실행할 커맨드나, ENRYPOINT 명령문으로 지정된 커맨드에 디폴트로 넘길 파라미터 지정할 때 사용

EXPOSE

EXPOSE <포트>
EXPOSE <포트>/<프로토콜>
  • 네트워크 상에서 컨테이너로 들어오는 트래픽을 리스닝할 포트와 프로토콜을 지정하기 위해 사용
  • 프로토콜은 TCP랑 UDP중 선택가능하며 기본은 TCP
  • 지정된 포트는 해당 컨테이너의 내부에서만 유효함 (HOST 컴퓨터에서 바로 접근하기 위해서는 사전 작업이 필요함)

COPY

COPY <src>... <dest>
COPY ["<src>",... "<dest>"]
  • HOST 컴퓨터에 있는 디렉터리나 파일을 Docker 이미지의 파일시스템으로 복사하기 위해 사용

ENV

ENV <키> <값>
ENV <키>=<값>
  • 환경 변수 설정하기 위해 사용, 설정된 환경 변수는 이미지 빌드 시에 사용되고 해당 컨테이너에 돌아가는 어플리케이션에도 접근이 가능함

ARG

ARG <이름>
ARG <이름>=<기본 값>
  • docker build로 이미지 빌드시 --build-arg 옵션을 통해 넘길 수 있는 인자를 정의하기 위해 사용
저작자표시

'DOCKER' 카테고리의 다른 글

[DOCKER] 도커컴포즈  (0) 2021.10.28
[DOCKER] 컨테이너 볼륨  (0) 2021.10.28
[DOCKER] 컨테이너 관리  (0) 2021.10.28
[DOCKER] 계정 관리자 권한 부여  (0) 2021.10.26
[DOCKER] 삭제방법  (0) 2021.10.26
'DOCKER' 카테고리의 다른 글
  • [DOCKER] 도커컴포즈
  • [DOCKER] 컨테이너 볼륨
  • [DOCKER] 컨테이너 관리
  • [DOCKER] 계정 관리자 권한 부여
집한구석
집한구석
  • 집한구석
    tgyun615.info
  • 전체
    오늘
    어제
    • 카테고리 (183)
      • JAVA (38)
      • SPRING (15)
      • KOTLIN (23)
      • NETTY (1)
      • DEVOPS (3)
      • DOCKER (7)
      • KUBERNETES (2)
      • JAVASCRIPT (1)
      • SPLUNK (3)
      • ELK (7)
      • KAFKA (2)
      • GO (4)
      • ALGORITHM & DATA STRUCTURE (9)
      • IDE (5)
      • OS (16)
      • NETWORK (14)
      • GCP (2)
      • AWS (2)
      • DATABASE (10)
      • CLEANCODE (7)
      • OTHER (12)
  • 최근 글

  • 태그

    JPA
    엘라스틱서치
    이펙티브코틀린
    IntelliJ
    자바
    프로그래머스
    splunk
    Kafka
    ElasticSearch
    클린코드
    go
    java
    코틀린
    cleancode
    SQL
    Elk
    Spring
    docker
    이펙티브 코틀린
    AWS
  • 링크

    • github
    • linkedin
    • resume
  • hELLO· Designed By 정상우. v4.10.3
집한구석
[DOCKER] DOCKERFILE 명령어 정리
상단으로

티스토리툴바