이미지를 만드는 방법에는 두가지가 있다.
- commit 커맨드로 기존 컨테이너를 이미지로 변환
- Dockerfile 스크립트로 이미지 생성
Dockerfile은 이미지를 만드는 역할을 한다.
Dockerfile 스크립트에는 토대가 될 이미지나 실행할 명령어등을 기재한다.
첫머리에 오는 from 뒤에 이미지 이름을 기재하고, 그 뒤로는 파일 복사 OR 명령어 실행 등 컨테이너를 대상으로 할 일을 기술한다.
주요 Dockerfile 인스트럭션
- FROM : 토대가 되는 이미지를 지정
- ADD : 이미지에 파일이나 폴더를 추가
- COPY : 이미지에 파일이나 폴더를 추가
- RUN : 이미지를 빌드할 때 실행할 명령어를 지정
- CMD : 컨테이너를 실행할 때 실행할 명령어를 지정
- ENTRYPOINT : 컨테이너를 실행할 떄 실행할 명령어를 강제 지정
- ONBUILD : 이 이미지를 기반으로 다른 이미지를 빌드할 때 실행할 명령어를 지정
- EXPOSE : 이미지가 통신에 사용할 포트를 명시적으로 지정
- ENV : 환경변수를 정의
- WORKDIR : RUN, CMD, ENTRYPOINT, ADD, COPY에 정의된 명령어를 실행하는 작업 디렉터리를 지정
- SHELL : 빌드 시 사용할 셸을 변경
- LABEL : 이름이나 버전, 저작자 정보를 설정
- USER : RUN, CMD, ENTRYPOINT에 정의된 명령어를 실행하는 사용자 또는 그룹을 지정
- ARG : docker build 커맨드를 사용할 때 입력 받을 수 있는 인자를 선언
- STOPSIGNAL : docker stop 커맨드를 사용할 떄 컨테이너 안에서 실행 중인 프로그램에 전달되는 시그널을 변경
- HEALTHCHECK : 컨테이너 헬스체크 방법을 커스터마이징