Dockerfile 작성
Dockerfile
설치 스크립트를 기재하여 베이스 이미지 위에 소프트웨어 패키지를 설치하게 하는 Docker 스크립트 파일
아래와 같은 내용을 담고 있다.
- 베이스 이미지의 리포지터리
- 설치할 패키지
- 애플리케이션 코드와 설정 파일
- 컨테이너 기동 시실행될 명령어
[목차로](#home1)
Dockerfile 장점
- 프로젝트에 새롭게 참가한 개발자가 개발 및 실행 환경에 대해 학습해야 할 시간과 노력을 줄여준다.
- 소프트웨어의 의존 관계를 컨테이너에 담아서 실행 환경 사이의 이동을 쉽게 해준다.
- 서버 관리나 시스템 관리의 부담을 줄여 준다.
- 개발 환경과 운영 환경의 차이를 줄여서 지속적 개발과 릴리즈를 쉽게 해준다.
- 같은 이미지를 사용하는 컨테이너 수를 늘림으로써 쉽게 처리 능력을 높일 수 있다.
도커의 경우 Dockerfile에 운영체제와 의존 패키지를 기술하여 이미지를 만들어 짧은 시간에 컨테이너를 기동/교체/종료할 수 있다.
‘짧게 사는 컨테이너를 만들라’
[목차로](#home1)
Dockerfile 자주 쓰이는 명령어
커맨드 | 설명 |
---|---|
FROM < 이미지 >[:태그] | 컨테이너의 베이스 이미지를 지정 |
RUN < 커맨드 > RUN ["커맨드", "파라미터1", "파라미터2"] |
FROM의 베이스 이미지에서 커맨드를 실행 |
ADD < 소스 > < 컨테이너_내_경로 > ADD ["소스", ..." < 컨테이너_내_경로 > "] |
소스(파일, 디렉터리, tar 파일, URL)를 컨테이너 내 경로에 복사 |
COPY < 소스 > < 컨테이너_내_경로 > COPY ["소스",... " < 컨테이너_내_경로 > "] |
소스(파일, 디렉터리)를 컨테이너 내 경로에 복사 |
ENTRYPOINT < 소스 > < 컨테이너_내_경로 > COPY ["소스",... " < 컨테이너_내_경로 > "] |
소스(파일, 디렉터리)를 컨테이너 내 경로에 복사 |
CMD ["실행가능한_것", "파라미터1", "파라미터2"] CMD < 커맨드 >(셸 형식) CMD ["파라미터1", "파라미터2"](ENTRYPOINT의 파라미터) |
컨테이너가 기동시 실행될 커맨드를 지정 |
ENV < key > < value > ENV %lt key > < 형식 > |
환경 변수 설정 |
EXPOSE < port >[< port > ..] | 공개 포트 설정 |
USER < 유저명 > | < UID > | RUN, CMD, ENTRYPOINT 실행 유저 지정 |
VOLUME ["/path"] | 공유 가능한 볼륨을 마운트 |
WORKDIR /path | RUN, CMD, ENTRYPOINT, COPY, ADD 의 작업 디렉터리 지정 |
ARG < 이름 >[= < 디폴트 값 >] | 빌드할 때 넘길 인자를 정의 --build-arg < 변수명 > = < 값 > |
LABEL < key > = < value > < key > = < value > | 이미지의 메타데이터에 라벨을 추가 |
MAINTAINER < 이름 > | 이미지의 메타데이터에 저작권을 추가 |
[목차로](#home1)
- 참고 사항 : Docker Doc
[목차로](#home1)