Dockerfile이 base image로 어떤 이미지를 사용할 것인지 명시
FROM <image>[:<tag>] [AS <name>]
ex)
FROM ubuntu
FROM ubuntu:18.04
FROM nginx:latest AS ngx
src의 파일 혹은 디렉토리를 dest 경로에 복사
COPY <src> ... <dest
ex)
COPY a.txt /some-dir/b.txt
COPY my-dir/ /some-dir-2
명시한 커맨드를 도커 컨테이너에서 실행하는 것을 명시
RUN <command>
RUN ["executable-command", "parameter1", "parameter2"]
ex)
RUN pip install torch
RUN pip install -r requirements.txt
명시한 커맨드를 도커 컨테이너가 시작될 때, 실행하는 것을 명시
CMD <command>
CMD ["executable-command", "parameter1", "parameter2"]
ex)
CMD python main.py
이후 작성될 명령어를 컨테이너 내의 어떤 디렉토리에서 수행할 것인지 명시
WORKDIR /path/workdir
ex)
WORKDIR /home/demo
컨테이너 내부에서 지속적으로 사용될 env variable의 값을 설정
ENV <key> <value>
ENV <key>=<value>
ex)
ENV locale-gen ko_KR_UTF-8
ENV LANG ko_KR.UTF-8
ENV LANGUAGE ko_KR.UTF-8
ENV LC_ALL ko_KR.UTF-8
컨테이너에서 뚫어줄 포트/프로토콜을 지정
protocol을 지정하지 않으면 TCP가 디폴트로 설정됨.
EXPOSE <port>
EXPOSE <port>/<protocol>
ex )
EXPOSE 8080
FROM ubuntu:18.04
RUN apt-get update
CMD ["echo", "hello world"]
$ docker build -t my-image:v1.0.0 .