Dockerfile 이해 및 빌드
도커파일은 도커 이미지를 생성하기 위한 설정 파일이다. 도커파일을 사용하면 이미지에 포함할 파일, 환경 변수, 실행할 명령 등을 지정할 수 있어 이미지를 보다 효율적으로 생성하고 관리할 수 있다.
도커파일은 다음과 같은 구조를 갖는다.
옵션 | 설명 |
FROM | 이미지를 생성하는 데 사용할 기본 이미지를 지정 |
LABEL(선택) | 이미지에 메타데이터(버전, 제작자, 라이선스 등)를 추가 |
RUN | 이미지에 설치하거나 실행할 명령을 지정 |
EXPOSE | 컨테이너가 외부에 노출할 포트를 지정. 도커 실행 시 -p 옵션으로 호스트와 연결할 포트를 지정할 수 있음 |
ENV | 환경 변수를 지정 |
ADD | 로컬 파일이나 디렉터리를 도커 이미지에 추가. 자동으로 압축 파일을 해제하고 URL로부터 파일을 다운로드 할 수 있음 |
COPY | 로컬 파일이나 디렉터리를 도커 이미지에 복사. ADD와 달리 자동 압축 해제나 다운로드 기능은 제공하지 않음 |
CMD | 컨테이너가 시작되었을 때 실행할 명령어를 지정. 도커 파일에서 한 번만 사용할 수 있음. |
도커파일의 예는 다음과 같다.
FROM ubuntu:14.04
LABEL title "Web Application"
RUN apt-get update && apt-get -y install apache2 php5
RUN echo 'Docker Web Application' > /var/www/html/index.html
RUN echo '<?php phpinfo(); ?>' > /var/www/html/phpinfo.php
EXPOSE 80
WORKDIR /var/www/html
CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
이 도커파일은 다음과 같은 이미지를 생성한다.
- 기본 이미지는 ubuntu:14.04로 지정
- 이미지에 Apache 웹 서버와 PHP를 설치
- 이미지에 index.html과 phpinfo.php 파일을 생성
- 이미지는 80번 포트를 노출
- 이미지의 작업 디렉토리는 /var/www/html로 지정
- 이미지의 기본 명령으로 apache2ctl을 시작
도커파일을 사용하여 이미지를 생성하려면 다음 명령을 사용한다.
sudo docker build -t docker_web .
이 명령은 현재 디렉터리에 있는 도커파일을 사용하여 docker_web이라는 이미지를 생성한다. 이 때 도커파일의 파일명은 Dockerfile이어야 하며, 파일명이 Dockerfile이 아닐 경우 -f 옵션을 사용하여 파일명을 지정해야 한다.