-
FROM <이미지>
- Dockerfile을 만들 때 가장 바탕이 되는 Image를 명시
-
COPY <파일경로> <Docker Container 내부 경로>
- 해당 이미지를 바탕으로 Container를 생성할 때, 사용자 서버의 파일을 Docker Container의 경로로 단순 복사
-
ADD <파일경로> <Docker Container 내부 경로>
- COPY와 동일한 기능의 파일 단순 복사
- URL 주소를 통한 복사 가능
- 압축파일(.tar)의 경우 압축 파일경로로 넣으면 압축을 풀어서 Container 내부 경로에 복사
-
RUN < COMMAND >
- Docker Image 생성시 수행되어야 하는 명령들을 나열해준다.
- Shell 형식으로 기술
RUN sudo apt get update
RUN apt-get install -y nginx
- exec 형식으로 기술
- Shell 형식으로 명령을 기술하면 /bin/sh에서 실행되지만, Exec 형식으로 기술하면 쉘을 경유하지 않고 직접 실행한다. 또는 기본 쉘이 아닌 bash, sh, ash 등 다른 쉘에서 명령을 실행하고 싶을 때 사용한다.RUN ["/bin/bash", "-c", "apt-get install -y nginx"]
-
WORKDIR <container 내부 경로>
- 해당 이미지로 만들어지는 Container의 기본 디렉토리를 세팅해주는 기능.
- WORKDIR에 명시된 경로를 기준으로 Dockerfile 내부의 명령들이 수행된다.
- docker exec으로 컨테이너 내부에 접속했을 때 보여지는 기본 경로이다.
- WORKDIR을 연속으로 여러개 입력하면 입력한 경로를 따라 계속 안으로 들어가게된다.
WORKDIR /a
WORKDIR b
WORKDIR c
-> container 내부의 WORKDIR = /a/b/c
-
ENV < key > < value >
- 해당 이미지로 만들어지는 container 내부에 환경변수를 정의한다.
- docker run 할때 --env 명령을 통해 환경변수 전달도 가능하다.
-> docker run -it --name env-cont --env USER=hyunsoo busybox sh
-
LABEL
- 해당 이미지에 라벨을 달아주어 나중에 검색이나 필터링시 편리하도록 한다.
LABEL version=1
LABEL name="hyunsoo-image"
-
VOLUME <로컬 경로> <컨테이너 내부 경로>
- 로컬 경로를 컨테이너 내부 경로와 연결한다.(데이터 공유 가능)
-
EXPOSE < PORT >
- Dockerfile을 바탕으로 만들어진 이미지를 통해 생성된 컨테이너의 열려있는 Port 번호를 명시한다.
-
HEALTHCHECK --interval=5s CMD ping -c 1 172.17.0.2
-
CMD < COMMAND >
- Docker Image가 Container로 실행되고 처음 수행하는 명령
- CMD 명령이 있는 docker image를 run 할 때 기존 CMD 명령에 대해 override가 가능하다.
-> docker run -dt --name cmd-container custom-img ping -c 10 google.com
-
ENTRYPOINT < COMMAND >
- CMD와 비슷한 기능을 하지만 다른점은 CMD는 Override가 되지만 ENTRYPOINT는 안된다.
- docker run을 특정 명령과 함께 했답면 override가 되는게 아니고 ENTRYPOINT 명령에 더해 append 된다.