개념
Docker Image 명세서
docker build <Path of Dir with Dockerfile>
명령어를 통해 이미지를 제작할때,
Dockerfile에 적혀있는 명령어 대로 제작이 된다.
명령어
FROM
- 베이스 이미지를 지정한다.
- 필수 항목이며, 첫 번째 줄에 기술한다.
- 어떤 이미지도 베이스 이미지가 될 수 있다.
- tag는 될 수 있으면 기본값보다 구체적인 버전을 지정하는 것이 좋다.
- 이미 만들어진 베이스 이미지는 Docker Hub에서 확인할 수 있다.
MAINTAINER
- Dockerfile을 관리하는 사람의 이름 또는 이메일 정보를 적습니다.
COPY
- 파일이나 디렉토리를 이미지로 복사합니다.
- target 디렉토리가 없다면 자동으로 생성합니다.
ADD
- COPY 명령어와 유사하나 몇가지 추가 기능이 있다.
- src에 파일 대신 URL을 입력할 수 있다.
- src에 압축 파일을 입력하는 경우, 자동으로 압축을 해제하고 복사한다.
RUN
- Build 중에 명령어를 그대로 실행한다.
- 내부적으로
/bin/sh -c
뒤에 명령어를 실행하는 방식이다
CMD
- 빌드가 끝나고 컨테이너가 시작될때 실행되는 명령어.
- 빌드할 때는 실행되지 않으며, 여러 개의 CMD가 존재할 경우, 가장 마지막 CMD만 실행.
WORKDIR
- RUN, CMD, ADD, COPY등이 이루어질 기본 디렉토리를 설정
- 각 명령어의 현재 디렉토리는 한 줄마다 초기화되기 때문에 같은 디렉토리에서 작업하기 위해서 사용.
EXPOSE
- 컨테이너가 실행될때 컨테이너의 포트를 지정.
- 여러개의 포트를 지정할 수 있다.
VOLUME
- 컨테이너 외부( host )와 내부의 파일시스템을 마운트할때 사용.
- docker-compose나,
docker run -v
옵션을 통해 지정이 가능하지만,
Dockerfile에 지정하는 것이 좋다.
ENV
- 컨테이너에서 사용할 환경변수를 지정.
docker run -e
옵션을 사용하면 이 값은 덮어 씌워진다.