[Docker] 이미지 생성

codesheep09·2023년 4월 17일
0

Dockerfile

  • 이미지 생성을 위한 설정파일
  • 컨테이너가 실행할 명령어를 순서대로 명세



#베이스 이미지 명시
FROM baseImage

#작업 디렉토리 명시
WORKDIR /var/app

#명시한 파일을 컨테이너 안으로 복사
COPY package.json ./

#도커 이미지 빌드시 실행될 명령어
RUN command

#컨테이너 시작시 실행될 명령어
CMD [ "executable" ]

#컨테이너 실행시 항상 실행될 명령어
ENTRYPOINT ["echo", "always display"]

  • FROM : 이미지 생성의 기반이 되는 이미지 레이어
    • <이미지이름>:<태그> (태그 생략시 최신버전 다운로드)
  • WORKDIR : 작업 디렉토리에 COPY한 파일들 위치
    • 미설정시, COPY를 통해 복사한 파일들이 root 경로에 위치하게 된다.
    • 같은 이름의 파일 존재시, 기존의 파일이 덮여쓰여진다.
  • COPY : 지정경로의 파일을 컨테이너에 복사
    • COPY ./ ./ : docker build ./ 명령어를 실행하는 경로의 모든 파일을 컨테이너 현재경로에 복사
  • RUN : 도커 이미지를 빌드하는 순간에 실행되는 명령어
    • 주로 참조하는 라이브러리를 설치한다.
  • CMD : 컨테이너가 시작되었을때 실행할 명령어
  • ENTRYPOINT : 컨테이너가 시작되었을때 항상 실행할 명령어
    • CMD/ENTRYPOINT 차이점 : CMD는 docker run <이미지 아이디> [실행할 명령어] 에서 실행항 명령어에 의해 대체되지만, ENTRYPOINT는 대체되지않고 항상 실행된다.





docker build . [옵션]

  • 현재 디렉토리에서 dockerfile을 찾아 이미지를 빌드한다.
  • dockerfile을 통해 임시컨테이너(추가된 명령어/파일스냅샷)를 만들고, 임시컨테이너로 이미지를 생성한다.
    • 이미지 생성후, 임시컨테이너는 삭제된다.
  • 옵션
    • -t : 도커 이미지에 이름을 설정한다.
      • docker build . -t <도커아이디>/<저장소/프로젝트 이름>:<버전>
      • ex) docker build . -t codesheep09/docker101tutorial:latest
    • -f : 도커파일의 파일명을 지정한다.
      • ex) docker build . -f dockerfile_gitlab
profile
IT 관련 내용들을 정리하는 공간입니다.

0개의 댓글