반응형
FROM
FROM <image>:<tag>
# FROM ubuntu:16.04
- 베이스 이미지를 지정한다. 반드시 지정해야하며 어떤 이미지도 베이스 이미지가 될 수 있다.
tag
는 될 수 있으면latest
(기본값)보다 구체적인 버전을 지정하는 것이 좋다.
MAINTAINER
MAINTAINER <name>
# MAINTAINER kitty224@kookmin.ac.kr
- Dockerfile을 관리하는 사람의 이름 또는 이메일 정보를 적는다.
COPY
COPY <src>... <dest>
# COPY . /usr/src/app
- 파일이나 디렉토리를 이미지로 복사한다. 일반적으로 소스를 복사하는데 사용한다.
target
디렉토리가 없다면 자동으로 생성한다.
ADD
ADD <src>... <dest>
# ADD . /usr/src/app
COPY
명령어와 유사하나 몇가지 추가기능이 있다.src
에 파일 대신 URL을 입력할 수 있고src
에 압축 파일을 입력하는 경우 자동으로 압축을 해제하면서 복사된다.
RUN
RUN <command>
# RUN ["executable", "param1", "param2"]
# RUN bundle install
- 명령어를 그대로 실행한다.
- 내부적으로
/bin/sh -c
뒤에 명령어를 실행하는 방식이다.
CMD
CMD ["executable","param1","param2"]
# CMD command param1 param2
# CMD bundle exec ruby app.rb
- 도커 컨테이너가 실행되었을 때 실행되는 명령어를 정의한다.
- 빌드할 때는 실행되지 않으며 여러개의
CMD
가 존재할 경우 가장 마지막CMD
만 실행된다. - 한꺼번에 여러 개의 프로그램을 실행하고 싶은 경우에는
run.sh
파일을 작성하여 데몬으로 실행하거나supervisord
나forego
와 같은 여러 개의 프로그램을 실행하는 프로그램을 사용합니다.
WORKDIR
WORKDIR /path/to/workdir
- RUN, CMD, ADD, COPY등이 이루어질 기본 디렉토리를 설정한다.
- 각 명령어의 현재 디렉토리는 한 줄 한 줄마다 초기화되기 때문에
RUN cd /path
를 하더라도 다음 명령어에선 다시 위치가 초기화된다. - 같은 디렉토리에서 계속 작업하기 위해서
WORKDIR
을 사용한다.
EXPOSE
EXPOSE <port> [<port>...]
# EXPOSE 4567
- 도커 컨테이너가 실행되었을 때 요청을 기다리고 있는(Listen) 포트를 지정한다. 여러개의 포트를 지정할 수 있다.
VOLUME
VOLUME ["/data"]
- 컨테이너 외부에 파일시스템을 마운트 할 때 사용한다. 반드시 지정하지 않아도 마운트 할 수 있지만, 기본적으로 지정하는 것이 좋다.
ENV
ENV <key> <value>
ENV <key>=<value> ...
# ENV DB_URL mysql
- 컨테이너에서 사용할 환경변수를 지정한다. 컨테이너를 실행할 때 -e옵션을 사용하면 기존 값을 오버라이딩 하게 된다.
참고
반응형
'Container > Docker' 카테고리의 다른 글
[Docker] docker 실행 시 "Cannot connect to the Docker daemon at unix:///var/run/docker.sock." 에러 해결 방법 (0) | 2021.08.31 |
---|---|
[Docker] Dockerhub에 도커 이미지 배포하기 (0) | 2021.08.31 |
[Docker] 도커 Docker / 컨테이너 Container /이미지 Image 란? (0) | 2021.08.31 |
[Docker] Docker run option 종류 (0) | 2021.08.31 |
[Docker] 도커 이미지 만들기 / Dockerfile (0) | 2021.08.30 |