Dockerfile

도커이미지를 작성할 때 어떤 스크립트를 실행시키는 것을 dockerfile 이라고 한다.

 

Dockerfile 작성하기

vi에디터로 아래와 같이 작성 (파일이름을 Dockerfile로 저장해야한다.)

FROM httpd
COPY ./webapp /usr/local/apache2/htdocs
CMD ["httpd-foreground"]

FROM : 기본이 될 이미지를 지정해준다.

COPY : 복사명령어 (./webapp 디렉토리내용을 /usr/local/apache2/htdocs 에 복사하라는 의미 )

CMD : 실행할 명령어 (httpd를 실행시킨다.) → Dockerfile에서 한번만 작성할 수 있다. (여러 개의 CMD를 입력하면 맨 마지막 CMD만 유효하다.)

 

※ COPY와 -v (volume)의 차이

  • COPY는 Dockerfile에서 사용 / -v는 run 옵션 중 하나이다.
  • COPY는 복사이고 -v는 링크를 거는 것이기 때문에 COPY된 파일을 수정해도 원본은 수정되지 않지만 -v 로 지정된 파일을 컨테이너에서 수정하면 원본인 HOST에 있는 파일이 수정된다.

Dockerfile 빌드하기

docker build -t [생성할이미지명]:[태그명] [dockerfile위치]
docker build -t webserver ./

도커파일을 빌드하는 것은 이전 시간에 한 docker commit과 비슷한데 docker build의 경우 Dockerfile을 가지고 이미지를 만드는 차이가 있다고함.

 

두 번째 파라미터로 경로만 넘겨준다면 "Dockerfile" 이름을 가진 파일을 알아서 찾아서 빌드해준다고 함. 

(만약 Dockerfile이 Dockerfile 이름으로 저장되어 있지 않다면 -f 옵션으로 도커파일명 을 명시해주어야한다.)

docker build -t sample -f Dockerfile-base ./

 

Dockerfile 빌드한 이미지 확인하기

docker images

빌드결과가 이미지로 제대로 반영되었는지 확인한다.

+ Recent posts