2023년 1월 31일


Dockerfile로 이미지 만들기

FROM

LABEL

COPY

CMD

가끔 사용하는 명령들

CMD 변경해보기


필수 명령

명령 설명
FROM 베이스 이미지 지정 명령
FROM httpd:alpine
LABEL 버전 정보, 작성자와 같은 이미지 설명을 작성하기 위한 명령
LABEL version=”1.0.0”
CMD docker 컨테이너가 시작할 때, 실행하는 쉘 명령을 지정하는 명령.
RUN과 비슷하지만 RUN은 이미지 작성시 실행하는 명령이고 CMD는 컨테이너를 시작할 때 실행하는 명령임.
CMD [’python’, ‘app.py’]
RUN 쉘 명령을 실행하는 명령.
RUN은 이미지 작성시 실행되며, 일종의 새로운 이미지 layer를 만드는 역할을 함.
RUN [”apt-get”, “install”, ‘nginx’]
ENTRYPOINT docker 컨테이너가 시작할 때, 실행하는 쉘 명령을 지정하는 명령.
docker run 커맨드 실행 시 별도 명령어도 넣을 수 있는데, 이 때 CMD 명령은 해당 명령으로 덮어씌워진다.
ENTRYPOINT로 지정한 명령은 docker run 커맨드 실행시 함께 넣어진 별도 명령어가 있더라도, 덮어씌워지지 않고 실행됨.
EXPOSE docker 컨테이너 외부에 오픈할 포트 설정
EXPOSE 8080
ENV docker 컨테이너 내부에서 사용할 환경 변수 지정
ENV PATH /usr/bin:$PATH
WORKDIR docker 컨테이너에서의 작업 디렉토리 설정
COPY 파일 또는 디렉토리를 docker 컨테이너에 복사.
ADD와 달리 URL은 지정할 수 없으며, 압축 파일을 자동으로 풀어주지 않음.
COPY test.sh /root/test.sh

그 외 명령

목차보기

Dockerfile로 이미지 작성


docker build 옵션 Dockerfile_경로

주요 옵션

옵션 설명
`-t
--tag` 이미지 이름 설정. 이미지 이름은 저장소(DockerHub ID)
이미지이름:태그 와 같이 작성할 수 있다.
(저장소 이름 및 태그 이름은 작성하지 않아도 되며, 태그 이름이 없으면 디폴트로 latest 태그가 붙는다.)
-f 이미지 빌드시 디폴트로 Dockerfile 파일명으로 된 파일을 찾아서 이미지를 빌드함.
그 외의 파일명으로 이미지를 빌드할 경우 해당 옵션을 사용해서 파일명을 지정할 수 있다.
-—pull FROM으로 지정된 이미지는 한번 다운로드 받으면 이미지 생성시마다 새로 다운로드 받지 않고, 다운로드 받은 이미지를 사용함.
해당 옵션은 이미지를 생성할 때마다 새로 다운로드 받으라는 옵션.
--pull=true 와 같이 사용.
Dockerhub에 베이스 이미지를 수시로 업데이트하고, 이를 기반으로 새로운 이미지를 생성하는 경우 사용할 수 있다.