320x100
320x100

도커 파일

: 컨테이너에 설치해야하는 패키지, 소스코드, 명령어, 환경 변수 설정 등을 기록한 파일

: 공식 허브에서 이미지를 받아서 컨테이너에서 작업 후 이미지로 커밋하는 것 보다 더 안정적

=> 명확한 패키지 설치

=> 이미지 생성의 자동화

=> 쉬운 배포

: 참조 (https://2mukee.tistory.com/198)

 

 

 

 

Docker file 속성

ㆍFROM

: 베이스 이미지 지정 (필수)

 

ㆍRUN

: 실행할 명령어 (이미지가 빌드되면서 실행)

 

ㆍCMD (필수)

: 이미지가 컨테이너로 실행될 때 실행할 명령 

: 1개만 작성 가능 (여러 개 작성시 가장 마지막 명령만 실행)

: docker run 명령어에서 실행된 명령어가 더 높은 우선순위를 가짐

 

ㆍENTRYPOINT (필수)

: 이미지가 컨테이너로 실행될 때 실행할 명령

: 1개만 작성 가능 (여러 개 작성시 가장 마지막 명령만 실행)

: CMD보다 우선순위가 높으며 CMD와 같이 작성할 경우 CMD의 명령어는 ENTRYPOINT의 매개변수로 취급됨

: docker run 명령어에서 실행된 명령어가 덮어쓰기 되지 않음

 

ㆍLABEL

: 라벨 설정 (도커 파일의 별명)

: 버전 정보, 작성자 정보, 코멘트 등

: LABEL maintainer 2mukee

: LABEL title="mohaemookji"

: LABEL version="1.0"

 

ㆍEXPOSE

: 호스트에 열어둘 포트

 

ㆍENV

: 환경 변수

: ENV key value

: ENV key = value (여러 개를 설정할 때)

: \구문을 통해 한 번 에 설정 가능

 

ㆍADD

: 파일 및 디렉터리 추가

: 원격 파일의 다운로드 및 아카이브의 압축 해제 등 수행

: URL 끝에 /을 추가하면 파일명이 URL로 됨

 

ㆍCOPY

: 파일 및 디렉터리 복사

: 단순히 이미지 안에 파일을 배치

 

ㆍVOLUME

: 마운트할 디렉터리

: 영구적으로 저장할 데이터를 호스트OS에 저장하기 위함 

 

ㆍUSER

: 사용자 지정

 

ㆍWORKDIR

: 명령어를 실행할 작업 디렉터리

 

ㆍARG

: docker file 내 변수 

 

ㆍONBUILD

: 빌드 완료 후 실행되는 명령어

: 해당 도커 파일로 생성한 이미지를 베이스 이미지로 한 다른 도커파일을 빌드 할때 실행

: 개발한 프로그램을 전개하는 명령어를 주로 지정 (ADD / COPY)

 

ㆍSTOPSIGNAL

: 시스템 콜 시그널 설정

: 컨테이너를 종료할 때 송신하는 시그널

 

ㆍHEATHCHECK

: 컨테이너 상태 체크

: 헬스 체크 간격 및 타임아웃, 타임아웃 횟수 등 설정

 

ㆍSHELL

: 기본 쉘 설정 

 

 

 

 

이미지 빌드

: docker build -t 도커허브아이디/이미지_명:태그명 도커파일_위치

: 이미지는 도커파일의 명령어 한 줄씩 읽어들이면서 임시로 컨테이너를 생성하고 지우는 방식으로 빌드가 수행 됨

: 도커 파일은 빈 디렉터리 안에 작성하는 것을 권장 (도커파일 내 모든 파일들이 빌드 되기 때문)

 

 

 

멀티스테이지 빌드

: 개발 환경용 이미지와 제품 환경용 이미지를 한 파일로 작성하여 이미지의 빌드 속도를 올리는 방법

: FROM을 두 개 작성하여 하나의 도커파일에서 두 개의 이미지가 빌드 되도록 설정 

 

 

 

실행 명령어의 형식

ㆍShell 형식

: RUN apt-get install -y mongodb

: /bin/sh를 사용하여 실행

 

ㆍExec 형식

: RUN ["apt-get", "install", "-y", "mongodb"]

: 명령어, 매개변수, 매개변수... 구조 

: 쉘을 경유하지 않고 직접 실행

 

※ RUN 명령어는 한 줄로 작성하는 것을 추천

: \을 이용하여 줄바꿈을 통해 가독성을 높이는 방법도 좋음

 

 

 

 

빌드 제외 파일 설정

: .dockerignore 파일에 설정

: .gitignore와 같은 형식

 

 

 

Refference

: 완벽한 IT 인프라 구축을 위한 Docker (http://www.yes24.com/Product/Goods/64728692)

300x250
728x90