Print
카테고리: [ Cloud Computing & MSA ]
조회수: 11708

1. 배경

Dockerhub에 있는 이미지를 그대로 쓰는 것이 최고지만 application을 올려서 사용하기 위해선 Dockerfile을 통해 이미지를 생성해야한다.
Dockerfile 간단히 알아봅시다


2. Dockerfile 기본

2.1 Base Image 가져오기

2.1.1. FROM

Docker Image를 만드는데 사용할 Base Image를 지정한다.
사용법 : FROM [REPOSITORY명]/[IMAGE이름]:[TAG]  (dockerhub의 경우 repository를 생략한다.)
예시 : FROM openjdk:8-jdk-apline

2.2 Docker Image에 파일 넣기

2.2.1. COPY

로컬 파일을 Docker Image로 복사한다. 복사할 위치에 directory가 없다면 자동으로 생성한다.
사용법 : COPY [복사할 로컬파일] [복사할이미지경로]/[신규파일명]
예시 : COPY build/libs/app.jar /deploy/app.jar

2.2.2. ADD

COPY와 같다. 차이점은 복사하는 파일이 압축파일인 경우 자동으로 압축을 해제한다.
사용법 : ADD [복사할 로컬파일] [복사할이미지경로][신규파일명]
예시 : ADD script/test.tar /script/test.tar

2.3 Docker Image 실행 command

2.3.1. RUN

Base Image위에 Package 설치 등에 사용되며 새로운 Layer를 형성한다.
사용법 : RUN [실행할명령어1]\ [실행할명령어2]\ ,,,
예시 : RUN apt-get install -y update\ apt-get install -y upgrade

2.3.2. CMD

docker run으로 docker image를 실행시 기본으로 실행되는 command이다. docker run에 다른 커맨드를 파라미터로 입력하면 무시된다.
가장 마지막에 사용하는 CMD 한개만 남는다.(내부에서 override된다.)

2.3.3. Entrypoint

컨테이너가 실행시 시작할 실행파일 또는 스크립트를 지정한다. 이것은 override되지않는다.
사용법 : ENTRYPOINT ["실행파일", "매개변수1", "매개변수2"]
예시 : ENTRYPOINT ["java", "-jar", "/eureka.jar"]

2.4 환경변수

2-4-1 ENV
Docker Image에서 사용할 환경변수를 설정한다.
사용법 : ENV key=value
예시 : ENV SARC=good

2-4-2 ARG
Docker build시 사용되는 환경변수, 이미지에선 쓰이지않음  --build-arg 옵션을 사용하여 오버라이딩가능
사용법 : ARG key=value

2.5 기타

2-5-1 maintainer
Dockerfile 관리자를 나타냄
사용법 : MAINTAINER [관리자정보]

2-5-2 WORKDIR
RUN, CMD가 실행되는 위치
사용법 WORKDIR [경로]