#원본이 될 이미지, https://hub.docker.com/ 참고#버전을 기록하지 않으면 최신 버전을 사용하게 된다.FROM ubuntu:16.04#작성자 정보, 필수는 아님, 옛날에는 MAINTAINER을 사용했으나 대체됨LABELemail="tayasriel@gmail.com"LABELname="BonhyeonGu"#언어 설정, ENV 자체는 도커 이미지 환경변수를 조작한다.ENVLC_ALL=C.UTF-8ENVLANG=C.UTF-8#명령어, 물음이 오는것을 피해야 진행이 가능하다.RUN apt-get update -y &&\
apt-get install -y nano#노출될 포트, 주의할 점은 이게 포트포워딩을 해주는 것이 아님EXPOSE 5000, 5001
FROM ubuntuLABELemail="tayasriel@gmail.com"LABELname="BonhyeonGu"RUN apt-get update -y &&\
apt-get install -y python-pip python-dev#호스트 경로 .의 파일들을 컨테이너의 경로 /app으로 복사시킨다.COPY . /app#컨테이너가 실행되면 활성화 될 경로, cd /app 과 동일하다.WORKDIR /appRUN pip install -r requirements.txt#명령어 실행, RUN과 다르게 컨테이너가 활성화 될 때 마다 실행된다.ENTRYPOINT["python"]#명령어 실행, ENTRYPOINT 와 비슷하지만, 만약 도커 컨테이너 실행과 함께#인수가 제공되면 그것으로 대체된다.CMD["app.py"]## 즉 이 형태는 컨테이너 start와 함께, 파이썬이 실행되고 컨테이너가 stop되는 형식
FROM ubuntuLABELemail="tayasriel@gmail.com"LABELname="BonhyeonGu"RUN apt-get update -y &&\
apt-get install -y python3-pip python3-dev#mkdir 이 필요할 수 있다.WORKDIR /appRUN pip install --no-cache-dir --upgrade pip &&\
pip install numpy#경우에 따라서 pip 모두 업그레이드 받는건 피해야겠다. 꽤 오래걸림#명령어 실행, RUN과 다르게 컨테이너가 활성화 될 때 마다 실행된다.ENTRYPOINT["python3"]#명령어 실행, ENTRYPOINT 와 비슷하지만, 만약 도커 컨테이너 실행과 함께#인수가 제공되면 그것으로 대체된다.CMD["app.py"]## 즉 이 형태는 컨테이너 start와 함께, 파이썬이 실행되고 컨테이너가 stop되는 형식