반응형
이 글은 2018년에 네이버 블로그에 포스팅했었던 글을 리포스팅한 글입니다.
dockerfile을 만드는데 자주 쓰는 키워드를 알아보도록 합니다.
FROM [base 이미지][:버전] |
FROM ubuntu:16.08 |
FROM은 docker image를 생성할 base 이미지를 지정합니다. 버전명을 지정하지 않으면 가장 최신 이미지를 이용해 이미지를 생성합니다. |
RUN [“실행할 명령어”,”파라미터1”,”파라미터2…] |
RUN [“apt-get”,”install”,”-y”,”tomcat8”] |
FROM으로 생성된 이미지내에서 실행할 명령어를 입력합니다. [“명령어”,”파라미터”,…]등으로 실행 할 수 있지만 ‘[‘없이 바로 명령어를 입력해도 됩니다. RUN apt-get install –y tomcat8 RUN명령어는 Docker Container를 build할 때 실행하는 명령어입니다. |
EXPOSE [TCP포트] |
EXPOSE 8080 |
Docker image로부터 외부로 노출할 TCP포트 번호를 입력합니다. docker –p 8080:8080에서 입력하는 8080포트가 EXPOSE된 포트를 의미합니다. |
ENV [환경파라미터명][환경파라미터 값] |
ENV http_proxy 'http://proxy.yourcompany.co.kr:8080' |
shell profile에서 사용할 환경변수를 선언합니다. |
CMD [“실행할 명령어”,”파라미터1”,”파라미터2…] |
CMD [“apt-get”,”install”,”-y”,”tomcat8”] |
FROM으로 생성된 이미지내에서 실행할 명령어를 입력합니다. [“명령어”,”파라미터”,…]등으로 실행 할 수 있지만 ‘[‘없이 바로 명령어를 입력해도 됩니다. CMD apt-get install –y tomcat8 CMD 명령어는 Docker container가 실행될 때 실행되는 명령어입니다. &&를 통해 명령어를 overload 할수 있습니다. |
ENTRYPOINT [“실행할 명령어”,”파라미터1”,”파라미터2…] |
ENTRYPOINT [“apt-get”,”install”,”-y”,”tomcat8”] |
FROM으로 생성된 이미지내에서 실행할 명령어를 입력합니다. CMD와 다른 점은 &&를 통해 명령어 overload가 불가능합니다. |
WORKDIR [컨테이너 내부에서 작업할 디렉토리] |
WORKDIR /home/user |
컨테이너가 실행 된 후 exec로 컨테이너 내부로 들어갔을 때 작업되는 기본 디렉토리입니다. |
VOLUME [호스트컴퓨터 디렉토리] |
VOLUME [“/ workspace/app”] |
VOLUME 명령어를 통해 호스트 디렉토리를 docker container 내부와 연결 시킬 수 있습니다. 데이터소스, 로그파일, 설정파일등을 docker container 외부로 노출 시키고자 할 때 사용할 수 있습니다. |
ADD [source 파일][목적파일] |
ADD sample.txt /workspace/app/ |
호스트 컴퓨터의 파일을 컨테이너 내부의 특정 디렉토리로 복사하는 역할을 합니다. COPY 명령어와 유사하나 ADD는 http:// URL에 등록된 파일도 복사 할 수 있는 기능이 있습니다. * ADD, COPY 모두 복사할 소스 파일은 docker build를 실행시키는 디렉토리에 위치하고 있어야 합니다. |
COPY [source 파일][목적파일] |
COPY sample.txt /workspace/app/ |
호스트 컴퓨터의 파일을 컨테이너 내부의 특정 디렉토리로 복사하는 역할을 합니다. ADD 명령어와 달리 URL에 등록된 파일은 복사가 안됩니다. |
이상입니다.
감사합니다.
반응형
'Application Modernization > Container & PaaS' 카테고리의 다른 글
Docker Image Repository (0) | 2021.09.29 |
---|---|
Docker Private Container Registry 만들기 (0) | 2021.09.29 |
Dockerfile 로 docker image 작성 (0) | 2021.09.14 |
Docker로 Tomcat MySQL 실행 (0) | 2021.09.14 |
Docker로 Tomcat 실행 (2) | 2021.09.14 |