Docker File

isTuna·2021년 4월 12일
1

Web 개발

목록 보기
18/19
post-thumbnail

이전에 Docker의 명령어와 기본 개념을 짧게 다룬 적이 있습니다. 오늘은 도커 파일에 대해서 정리해 보겠습니다.

Docker File

Docker File은 컨테이너에 설치해야하는 패키지, 소스코드, 명령어, 환경 변수를 기록한 파일입니다. 이 파일을 빌드하면 이미지가 생성되고 이를 통해 빌드와 배포를 자동화할 수 있습니다.

도커 파일의 예시를 보여드리겠습니다.

#./Dockerfile
FROM python:3 
#기반이 될 이미지

# 작업디렉토리(default)설정
WORKDIR /usr/src/app 

## Install packages
#현재 패키지 설치 정보를 도커 이미지에 복사
COPY requirements.txt ./ 
#설치정보를 읽어 들여서 패키지를 설치
RUN pip install -r requirements.txt

## Copy all src files
#현재경로에 존재하는 모든 소스파일을 이미지에 복사
COPY . . 


## Run the application on the port 8080
#8000번 포트를 외부에 개방하도록 설정
EXPOSE 8000   


#CMD ["python", "./setup.py", "runserver", "--host=0.0.0.0", "-p 8080"]
#gunicorn을 사용해서 서버를 실행
CMD ["gunicorn", "--bind", "0.0.0.0:8000", "****.wsgi:application"]  

Docker File은 위와같은 형식으로 작성할 수 있으며 COPY FROM EXPOSE RUN 등의 명령어가 앞에 붙어있는 것을 확인할 수 있습니다. 명령어들에는 어떤 것들이 있는지 보겠습니다.

FROM
FROM 명령어는 base 이미지를 지정하기 위해서 사용됩니다. 보통 파일에 최상단에 위치합니다.

FROM <이미지>:<태그>

WORKDIR
WORKDIR 명령어는 shellcd 명령어와 비슷하게 작업 디렉토리를 변경해 줍니다.

WORKDIR <이동할 경로>

RUN
RUN 명령어는 shell에서 커맨드를 실행하는 것과 유사하게 이미지 빌드 과정에서 필요한 명령어를 실행시킵니다. 보통 이미지 안에 특정 소프트웨어를 설치하기 위해 사용됩니다.

RUN <전체 커맨드>
ex) RUN npm install

EXPOSE
EXPOSE 명령어는 포트와 프로토콜을 지정하기 위해 사용되는 명령어로 포트번호를 설정하고 TCP/UDP 중에 선택할 수 있습니다. TCP가 디폴트기 때문에 설정하지 않으면 자동으로 TCP가 적용됩니다.

EXPOSE <포트번호>/<TCP 혹은 UDP>
ex) EXPOSE 3000/tcp

COPY
COPY는 호스트 컴퓨터에 있는 파일을 이미지의 파일 시스템으로 복사하기 위한 명령어입니다. 상대 경로와 절대 경로 모두 사용됩니다.

COPY <경로> <경로>

CMD
CMD 명령어는 컨테이너가 실행될 때 실행할 커맨드들을 사용합니다. 많은 경우 ENTRYPOINT와 함께 사용합니다.

CMD <전체 커맨드>


profile
청소연구소 개발자 (2021. 05~ )

0개의 댓글