Page 28 -
P. 28
ENTRYPOINT와 CMD는 컨테이너 기동 시에 별도 옵션을 지정하면 실행할 때마다 덮어 쓰기를 할 수
있다. 실제로는 ENTRYPOINT에 기본적으로 바꿀 필요가 없는 부분을 정의해 두고, CMD에 기본값 인
수 등을 정의하는 것이 일반적이다. 인수를 지정하고 명령어를 실행하려는 경우에는 CMD 부분만
변경하여 실행할 수 있게 한다. 예를 들어, ENTRYPOINT에 /bin/sleep을 지정해 두고 CMD에는 나중
에 sleep하는 시간(초)을 지정하여 사용할 수 있다.
그리고 이번 예제에서는 USER 명령을 사용하여 실행 계정을 nobody로 지정했는데, 서비스 환경
에서는 구별하기 쉽도록 별도의 전용 계정을 만들어 사용하는 것을 추천한다.
마지막으로 도커 파일을 작성하는 주요 명령 목록을 표 1-3에 정리했다. 그밖의 명령과 상세한 내
2
용은 도커 파일 모범 사례 를 확인하길 바란다.
표 1-3 도커 파일에서 사용할 수 있는 명령
명령 요약
FROM 기반 이미지를 지정
MAINTAINER 컨테이너 이미지 관리자 정보를 기입 (현재는 비추천. 아래 LABEL 명령을 사용함)
LABEL 컨테이너 이미지의 메타데이터를 키:밸류 형식으로 지정 (예: LABEL maintainer="Park SangUk
<polo149278@example.com">)
USER 명령어 실행 계정 지정
WORKDIR 명령어를 실행할 작업 디렉터리 지정 (디렉터리가 없을 경우 생성)
EXPOSE 컨테이너 실행 시 Listen할 포트 지정
COPY 로컬에 있는 파일을 컨테이너로 복사
ADD 로컬에 있는 tar.gz 파일의 압축을 풀고 파일을 컨테이너로 복사
RUN 컨테이너 안에서 명령어를 실행
ENTRYPOINT 컨테이너 기동 시에 실행할 명령어
CMD 컨테이너 기동 시에 실행할 명령어 인수
1.1.4 도커 이미지 빌드
실제로 위의 도커 파일을 가지고 docker image build 명령어를 사용하여 이미지를 빌드해보겠다.
-t 옵션으로 이미지의 이름과 태그를 지정할 수 있다. 태그에는 생성하는 도커 이미지의 버전을
지정하는 것이 일반적이다.
2 https://docs.docker.com/develop/develop-images/dockerfile_best-practices/
36
쿠버네티스_04.indd 36 2021-07-20 오후 1:32:57