도커파일(Dockerfile)이란 사용자가 도커 이미지를 쉽게 만들 수 있도록 도와주는 템플릿입니다.
기본 명령어
FROM -> Dockerfile이 어떤 이미지를 base image로 사용할 것인지 명시해줌
# FROM <image>[:<tag>] [AS <name>]
# EX)
FROM ubuntu
FROM ubuntu:18.04
FROM nginx:latest AS ngx
COPY -> <src>의 파일, 디렉토리를 <dest> 경로에 복사
# COPY <src>... <dest>
# EX)
COPY 1.txt /test/1.txt
COPY my-dir /test-dir
RUN -> 명시한 커맨드를 도커 컨테이너에서 실행
# RUN <command>
# EX)
RUN pip install numpy
RUN pip install -r requirements.txt
CMD -> 명시한 커맨드를 도커 컨테이너가 시작될 때 실행
하나의 도커 이미지에서 하나의 CMD만 실행 가능하다.
# CMD <command>
# EX)
CMD python main.py
WORKDIR -> 이후 작성될 명령어를 컨테이너 내의 어떤 디렉토리에서 수행할 것인지를 명시해줌
# WORKDIR /path/to/workdir
# EX)
WORKDIR /home/test
ENV -> 컨테이너 내부에서 지속적으로 사용될 환경 변수의 값을 설정
# ENV <key> <value>
# ENV <key>=<value>
# EX)
ENV LANG ko_KR.UTF-8
ENV LC_ALL ko_KR.UTF-8
EXPOSE -> 컨테이너에서 뚫어줄 포트/프토로콜을 지정
프로토콜을 지정하지 않으면 TCP가 디폴트로 설정됩니다.
# EXPOSE <port>
# EXPOSE <port>/<protocol>
# EX)
EXPOSE 8080
Dockerfile 작성 예시
# base image를 ubuntu 최신 버전으로 설정
FROM ubuntu:latest
# apt-get update 명령어 실행
RUN apt-get update
# 도커 컨테이너가 시작될 때, "Hello World!" 출력
CMD ["echo", "Hello World!"]
위와 같이 Dockefile을 생성한 후 아래 명령어를 실행해주면 도커 이미지가 생성됩니다.
docker build -t test-image:v1.0.0 .
설명하자면 이름이 my-image고 태그가 v1.0.0인 이미지를 현재 경로에 있는 Dockerfile로부터
빌드하겠다는 명령어입니다.
이미지가 생성되고 나서 아래 명령어를 통해 도커 컨테이너를 실행하면
Hello World!가 출력되는 것을 확인할 수 있습니다.
docker run test-image:v1.0.0
'MLOps' 카테고리의 다른 글
도커(Docker) 설치, 명령어 (0) | 2021.11.18 |
---|---|
MLOps란? (0) | 2021.11.16 |
GCP 인스턴스, 스토리지 버킷 생성하기(ssh 접속, gsutil, 권한 설정) (0) | 2021.06.08 |