본문 바로가기
Docker

1. Dockerfile 이란?

by 서영선 2023. 8. 12.

 

Dockerfile 이란?

  • docker 이미지를 작성할 수 있는 기능임
  • Dockerfile 문법으로 이미지 생성을 위한 스크립트를 작성할 수 있고, 이를 기반으로 이미지를 생성할 수 있음
  • 나만의 이미지를 생성할 수 있고, 배포를 위해서도 많이 활용되는 기능임

 

 

 

 

Dockerfile 기본 문법

  • Dockerfile은 텍스트 파일 형식으로, 각자 사용하는 어떤 에디터로든 작성할 수 있음
  • Dockerfile 기본 문법 : 명령과 인자로 이루어짐, 명령은 통상적으로 대문자로 작성함        

 

 

 

 

Dockerfile 주요 명령

  • FROM : 베이스 이미지 지정 명령
  • LABEL : 버전 정보, 작성자와 같은 이미지 설명을 작성하기 위한 명령
  • CMD : docker 컨테이너가 시작할 때, 실행하는 쉘 명령을 지정하는 명령. RUN 과 비슷하지만, RUN은 이미지 작성시 실행하는 명령이고, CMD는 컨테이너를 시작할 때 실행하는 명령임
  • RUN : 쉘 명령을 실행하는 명령, RUN은 이미지 작성 시 실행되며, 일종의 새로운 이미지 layer를 만드는 역할
  • ENTRYPOINT : docker 컨테이너가 시작할 때, 실행하는 쉘 명령을 지정하는 명령. docker run 커멘트 실행시, 별도 명령어도 넣을 수 있는데, 이때 CMD 명령은 해당 명령으로 덮어씌어짐. ENTRYPOINT로 지정한 명령은 docker run 커멘트 실행시 함께 넣어진 별도 명령어가 있더라도, 덮어씌어지지 않고 실행됨
  • ENV : docker 컨테이너 내부에서 사용할 환경 변수 지정
  •  WORKDIR : docker 컨테이너에서의 작업 디렉토리 설정
  • COPY : 파일 또는 디렉토리를 docker 컨테이너에 복사. ADD 와 달리 URL은 지정할 수 없으며, 압축 파일을 자동으로 풀어주지 않음

 

# Dockerfile 예시
FROM ubuntu:18.04
LABEL maintainer="ys"
LABEL version="1.0.0"
LABEL description="A test for docker image"

RUN apt-get update
RUN apt-get install -y apache2 apt-utils

EXPOSE 80
COPY ./2021_DEV /var/www/html/

ENTRYPOINT[ "/usr/sbin/apche2ctl", "-D" , "FOREGROUND" ]

 

 

 

 

 

 

 

Dockerfile 로 이미지 작성

docker build 옵션 Dockerfile_경로
< 주요 옵션 >
-t 또는 -tag  이미지 이름 설정. 이미지 인름은 저장소/이미지이름:태그 와 같이 작성할 수 있음 (저장소 이름 및 태그 이름은 작성 안해도 되며, 태그 이름이 없는 경우, 디폴트로 latest 가 태그로 붙어짐

-f  :  이미지 빌드시 디폴트로 Dockerfile 파일명으로 된 파일을 찾아서 이미지를 빌드함. 그 외의 파일명으로 이미지를 빌드하는 경우 해당 옵션을 사용해서 파일명을 지정할 수 있음

--pull  :  FROM으로 지정된 이미지는 한번 다운로드 받으면, 이미지 생성시 마다 새로 다운로드 받지 않고, 다운로드 받은 이미지를 사용함. 해당 옵션은 이미지 생성시마다 새로 다운로드를 받으라는 옵션이다.

docker build --tag test .

cp Dockerfile test_dockerfile
docker build --tag test2 -f test_dockerfile .
docker images

 

 

 

'Docker' 카테고리의 다른 글

5. nginx_apache  (0) 2023.08.19
4. Docker Compose  (0) 2023.08.19
3. Docker link  (0) 2023.08.13
2. docker 조사하기  (0) 2023.08.12
0. Docker 란?  (0) 2023.08.12

댓글