dockerFile 작성법

Seung jun Cha·2023년 9월 21일
0
  • 도커 이미지를 만들기 위한 스크립트로 스크립트를 기반으로 도커이미지를 생성한다.
  1. FROM : Docker 이미지를 빌드할 때 기본이 되는 베이스 이미지를 지정, 가장 먼저 FROM에 있는 이미지를 다운로드 받는다. 모든 Dockerfile은 FROM 명령어로 시작해야 한다.
FROM alpine
FROM ubuntu:20.04
  1. Dockerfile로 이미지 생성 : 이름이 Dockerfile로 설정된 파일을 찾아서 이미지를 생성한다.
docker build 옵션 Dockerfile의 경로
docker build --tag myimage .  (.은 현재폴더)
  1. 파일명이 Dockerfile이 아니라면 -f 옵션을 사용한다.
docker build --tag test2 -f test_dockerfile .
test_dockerfile이름의 파일로 test2 이미지를 생성
  1. LABEL : Key = value 형식으로 메타 데이터를 넣을 수 있다. 도커파일의 기능자체에는 영향을 주지 않는다
LABEL maintainer = "cha@naver.com"
LABEL version = "1.0"
  1. COPY
COPY ./폴더명(이미지에 추가할 파일들이 들어있음) /복사한 파일들이 들어갈 경로
  1. CMD ["명령어", "매개변수"] : 컨테이너가 실행될 때 실행될 명령어를 지정합니다. 이미지에서 CMD는 하나만 존재할 수 있으며, 컨테이너가 실행될 때 이 명령어가 실행됩니다. 파일에 CMD가 있더라도 뒤에 CMD를 적으면 뒤의 것이 적용된다(마지막 CMD로 덮어쓴다)

  2. ENTRYPOINT ["명령어", "매개변수"] : docker run 시 함께 들어가는 CMD 명령어 덮어씌여지지않고 반드시 실행해야하는 명령을 기입할 때 사용한다. ENTRYPOINT 명령어가 존재하는 경우, CMD 명령어 및 매개변수는 ENTRYPOINT 명령어와 결합되어 실행됩니다.

  3. EXPOSE : 컨테이너 생성 시 특정 포트를 외부에 오픈한다.
    docker run -p도 포트를 오픈하는 것이지만 오픈한 포트를 호스트 PC와 연결하는 것까지 이루어진다. EXPOSE로 먼저 오픈한 후 -P (대문자)를 사용한다면 랜덤포트와 expose 포트를 자동으로 연결한다.

EXPOSE 80
docker run -P -d 이름
0.0.0.0:랜덤포트->80/tcp
  1. ENV : 환경변수 설정
FROM mysql:lastest
ENV MYSQL_ROOT_PASSWORD=설정
ENV MYSQL_DATABASE=설정
  1. WORKDIR : RUN, CMD, ENTRYPOINT 명령이 실행될 디렉토리 지정
WORKDIR /usr/local

CMD /bin/cat/index.html

0개의 댓글