FROM

**https://docs.docker.com/engine/reference/builder/#from**

가능하면, 현재 제공되고 있는 공식 이미지를 사용하는 것이 좋다. 알파인 이미지는 리눅스 배포판 중에서 크기가 매우작고 (6mb) 엄격하게 관리되고 있기 때문에 사용을 추천한다.

LABEL

**https://docs.docker.com/config/labels-custom-metadata/**

이미지에 레이블을 추가하여 프로젝트별 이미지 구성, 라이센스 정보 기록, 자동화 정보 등 기타 여러가지 정보를 기록할 수 있다. 각 레이블은 **LABEL**로 시작하고, 하나 이상의 키-값 쌍으로 추가하면 된다.

공백이 있는 문자열은 따옴표로 묶거나 공백을 이스케이프 해야 한다. ('' 도 마찬가지다.)

# Set one or more individual labels
LABEL com.example.version="0.0.1-beta"
LABEL vendor1="ACME Incorporated"
LABEL vendor2=ZENITH\\ Incorporated
LABEL com.example.release-date="2015-02-12"
LABEL com.example.version.is-production=""

모든 이미지는 레이블을 하나 이상 가지고 있을 수 있다. Docker 1.10 이전 버전에서는, 추가적인 레이어가 생성되지 않도록 여러 레이블을 하나의 **LABEL**로 묶는 것이 권장되었다. 이제 더이상 필요하진 않지만 여전히 여러개를 결합하는 방식은 가능하다.

# Set multiple labels on one line
LABEL com.example.version="0.0.1-beta" com.example.release-date="2015-02-12"
# Set multiple labels at once, using line-continuation characters to break long lines
LABEL vendor=ACME\\ Incorporated \\
      com.example.is-beta= \\
      com.example.is-production="" \\
      com.example.version="0.0.1-beta" \\
      com.example.release-date="2015-02-12"

RUN

**https://docs.docker.com/engine/reference/builder/#run**

길거나 복잡한 RUN 구문은 백슬래시를 활용하여 여러줄로 분할하는 것이 Dockerfile 관리에 좋다.

apt-get

**RUN**에서 아마 가장 자주 사용되는 명령어는 **apt-get**일 것이다. **RUN apt-get**은 패키지를 설치하는 명령어이기 때문에 몇가지를 고려 해야 한다.

RUN apt-get update 와 **apt-get install**은 항상 같은 **RUN**구문 안에 있어야 한다.