Dockerfile이란 ?

GonnabeAlright·2022년 1월 2일
0
post-thumbnail

Dockerfile이란 ?

도커 명령어로 컨테이너를 구성하기 위해서는 컨테이너 생성, 컨테이너 안에서 OS 설정, 미들웨어 설치, 파라미터 설정 등은 모두 직접 수행해야 한다. 이러한 일련의 작업을 자동으로 수행하도록 스크립트로 만든것이 dockerfile이다. 이러한 Dockerfile은 필요한 환경설정이 모두 세팅된 image를 만드는 데 목적이 있으며, 또한 자동화로써 사용할 수 있고 스크립트이므로 변경해서 재사용할 수도 있다. 이러한 도커파일의 내용은 아래와 같은 정보들을 기술한다.

  1. 베이스가 될 도커 이미지
  2. 도커 컨테이너 안에서 수행할 명령, 조작 등
  3. 환경변수 등의 설정
  4. 도커 컨테이너 안에서 작동시킬 데몬 실행

Dockerfile 구문 기본

Dockerfile은 텍스트 형식이며 확장자는 없다. 만들기 위해서는 어떤 에디터도 상관없다. 메모장도 좋고, vi editor, notepad++, ultraedit 등등 어떤 프로그램도 상관없다. visual studio code는 dockerfile 작성을 위한 확장파일을 제공하므로 좀 더 편하게 사용할 수 있다. 이러한 텍스트 파일의 이름은 기본적으로 Dockerfile이라는 이름을 사용한다. 만약 이름을 변경하는 경우, 이미지 build시 따로 옵션을 줘서 해당 파일명을 명시해줘야 한다.

기본 서식은 "명령 인수" 형식이다. FROM node:14 이런 식. 또한 명령 부분은 대소문자를 가리지는 않지만 가독성을 위해 관례적으로 대문자를 사용한다. 또한 주석도 가능하며 주석은 맨 앞에 #을 붙이면 된다.

명령설명상세
FROM베이스 이미지 지정docker 컨테이너를 어떤 docker 이미지로부터 생성할지 기술
RUN명령 실행from에서 지정한 베이스 이미지에 대해 수행하는 명령
CMD컨테이너 실행 명령from에서 지정한 베이스 이미지에 대해 데몬을 실행하는데 자주 사용
LABEL라벨 설정도커파일에 기술할 기타정보들을 기록한다. 만든사람, 버전 등
EXPOSE포트 익스포트포트를 오픈한다.
ENV환경변수도커파일 안에서 환경변수를 설정한다.
ADD파일/디렉토리 추가
COPY파일 복사
ENTRYPOINT컨테이너 실행 명령cmd와 동일하나 컨테이너 생성명령 수행시 무조건 우선적이다.
VOLUME볼륨 마운트
USER사용자 지정특정 명령을 수행할 때 사용할 사용자를 명시한다.
WORKDIR작업 디렉토리명령어가 실행될 경로를 지정
ARGdockerfile안의 변수도커파일에서 변수를 만들 때 사용
ONBUILD빌드 완료 후 실행되는 명령빌드한 후 나온 이미지를 다시 빌드할 때 실행되는 명령
STOPSIGNAL시스템 콜 시그널 설정컨테이너 종료시 사용할 시그널 설정
HEALTHCHECK컨테이너의 헬스체크일정 주기로 컨테이너의 헬스를 체크하여 결과를 inspect로 볼 수 있게한다.
SHELL기본 쉘 설정도커파일에서 사용할 쉘 지정

기본 명령어

설명명령어
docker build 만들기docker build -t [생성할 이미지명]:[태그명][dockerfile위치]
실행중인 컨테이너 확인docker ps
컨테이너 확인docker ps -a
컨테이너 삭제docker rm [컨테이너ID]
이미지 삭제docker rmi [이미지ID]

0개의 댓글