Docker image 생성을 위한 명령어가 포함된 스크립트 파일
ㄴ Dockerfile 문법으로 스크립트를 작성해 Docker image를 생성
Docker image는 Dockerfile에 나열된 명령어 수행을 통해 생성됨
ㄴ Dockerfile을 통해 Docker image의 구성 방식을 알 수 있음
ⓐ메모장 열기 → ⓑDockerfile 스크립트 작성 → ⓒDockerfile 저장
<주요 Instruction>
ⓑ-1) FROM: 생성할 Docker image의 base가 되는 image 설정
FROM <이미지명>:<태그>
ㄴ 태그를 명시하지 않는 경우 docker hub에 있는 최신 버전으로 설치
예) FROM ubuntu:20.04
예) FROM python:3.9
예) FROM python
ⓑ-2) MAINTAINER: docker image 작성자 정보 설정
MAINTAINER <작성자>
예) MAINTAINER jaegyeong_lee
ⓑ-3) LABEL: 주석과 같음, 별도의 기능 없음
예)
LABEL version="0.5.0"
LABEL description="LABEL instruction test"
$docker image inspect <이미지명>
ㄴLABEL 태그 확인
ⓑ-4) WORKDIR: docker container의 작업 디렉토리 설정
WORKDIR <도커이미지 내 디렉토리>
예) WORKDIR /usr/src/app
ⓑ-5) COPY: HOST → docker image로 파일/폴더를 가져오기 위해 설정
COPY <HOST 파일 경로> <docker image 파일 경로>
예) COPY . .
# COPY <호스트 현재 디렉토리> <컨테이너 내 디렉토리(WORKDIR 설정 경로)>
# 즉, COPY의 첫번째 . 은 Dockerfile이 위치한 경로 ; 두번째 . 은 /usr/src/app
# ==> host Dockerfile이 위치한 경로 모든 파일들이 컨테이너의 /usr/src/app 경로로 복사
ⓑ-6) RUN: docker container '빌드' 시, 실행할 명령어 지정
예)
RUN apt-get update #필수
RUN apt-get install -y vim
ㄴ-y 옵션은 설치 도중 발생하는 팝업(설치여부 확인(yes or no)) 처리를 위함
위와 같이 해도 되나, 아래와 같이 한 번에 이어서 작성하는게 효율적.
# vim 설치
RUN apt-get update && apt-get install -y vim
ㄴ 실행 절차: apt-get update 처리 → apt-get install -y vim 처리
# python 패키지
RUN pip install --no-cache-dir -r requirements.txt
ㄴ 일반적으로 apt-get install 이 있으면 그걸 먼저 수행, pip install 후순위로 설정
ⓑ-7) CMD: docker container '실행(run)' 시, 실행할 명령어 설정
예) CMD ["python", "test,py"]
ⓑ-8) ENTRYPOINT: docker container '실행(run)' 시, 실행할 명령어 설정
예) ENTRYPOINT ["python", "test,py"]
CMD ENTRYPOINT 공통점
CMD ENTRYPOINT 차이점
CMD ENTRYPOINT 특징
<기타 Instruction>
ADD - COPY랑 유사
EXPOSE
ENV
VOLUME
SHELL
USER
ARG
STOPSIGNAL
HEALTHCHECK
※ 참조: https://docs.docker.com/reference/dockerfile/
FROM python:3.9
MAINTAINER jaegyeong_lee
LABEL version="0.7.0"
LABEL description="TmaxAI project QA image"
WORKDIR /usr/src/app
COPY . .
RUN pip install --no-cache-dir -r requirements.txt
CMD ["bash"]
FROM python:3.9
ㄴ base image로 python 설정
MAINTAINER jaegyeong_lee
ㄴ 작성자 이름 jaegyeong_lee
LABEL version="0.7.0"
LABEL description="Mirae Asset QA code"
ㄴ Docker image에 주석 설정
WORKDIR /usr/src/app
ㄴ Docker images 내 작업 디렉토리 /usr/src/app 설정
COPY . .
ㄴ 첫번째 . 은 Dockerfile이 위치한 경로; 두번째 . 은 /usr/src/app
RUN pip install --no-cache-dir -r requirements.txt
ㄴ python module 자동 설치(requirements.txt 에 명시된 module)
CMD ["bash"]
ㄴdocker run -it <이미지명> 만 실행 시, Docker container 내 셀에 자동 접근
Local PC 내 Docerkfile이 위치한 경로로 이동 후
$docker build -t <이미지명:태그명> .