Dockerfile 작성방법

김현송·2023년 7월 24일
0

FROM 구문

  • 기반 이미지를 지정합니다.
# FROM 이미지이름
# FROM 이미지이름:태그(버전)
# FROM 이미지이름@다이제스트
FROM ubuntu:20.04

MAINTAINER 구문

  • 이미지의 제작자를 기록해둡니다.
# MAINTAINER 이름 이메일
MAINTAINER Kim hyunsong <ssong_14@naver.com>

ENV 구문

# ENV 환경변수이름 값
# ENV 환경변수이름=값 
ENV PYTHON3 python3.6

RUN 구문

컨테이너가 빌드할때 실행되는 구문입니다.
실행 결과는 새로운 레이어로 구성되며 컨테이너 환경을 구성하기 위한 명령을 실행합니다.

레이어 이미지
레이어는 파일 시스템 및 환경 정보를 말합니다.
RUN 등의 실행 구문으로 컨테이너 파일 시스템이 변경될 때 새로운 레이어에 변경사항을 기록합니다.

  • 기본
# RUN CMD
RUN apt-get install gcc g++
  • EXEC 형식
# RUN ["실행파일", "매개변수1", "매개변수2"]
RUN ["/bin/bash", "-c", "echo HelloWorld!"]

ADD 구문

호스트의 파일시스템 혹은 원격 URL에 있는 파일/디렉토리를 컨테이너 이미지로 복사합니다.

  • 컨테이너에 복사된 파일/디렉토리의 소유주 (UID/GID)는 0입니다
  • 소스파일이 원격URL인 경우 파일 권한은 600 (소유자만 읽고 쓸 수 있음)입니다.
  • 빌드 컨텍스트 상위로 접근이 불가합니다.
  • 호스트 파일이 압축파일인 경우 이를 풀어서 디렉토리 형태로 처리합니다.
  • 목적지가 없다면 recursive하게 새로 생성됩니다.
# ADD 원본파일 목적디렉토리
ADD test1.py test2.py /data
# 디렉토리도 복사가 가능합니다. (단, Dockerfile이 있는 디렉토리의 하위 디렉토리에만 접근이 가능합니다.)
ADD ./source /data

COPY

  • ADD와 유사하지만 압축파일도 그대로 복사하는 특징이 있습니다.
  • ADD는 호스트 또는 원격에서만 복사가 가능하지만 COPY는 다른 이미지로부터 파일을 가져올 수 있습니다.
profile
안녕하세요

1개의 댓글

comment-user-thumbnail
2023년 7월 24일

공감하며 읽었습니다. 좋은 글 감사드립니다.

답글 달기