[Docker] What is Dockerfile? 도커 파일 구성하기

·2024년 1월 17일

Start Docker!

목록 보기
2/9

Dockerfile이란?

도커를 설치하고 실행할 준비를 다했다. 그러면 도커 파일은 무엇인가?

도커 이미지를 정의 하는 일종의 설정 파일


Dockerfile 구성해보기

# 이미지의 이름(허브 상의 이름)
FROM node:14 

# 실행하는 위치를 정하는 명령어(코드의 위치로)
WORKDIR /app

COPY package.json .

# 이미지 생성(빌드)시 실행 명령
RUN npm install

# 경로 .(src) ./app(dest) => workdir이 /dir이기 때문에 /app(절대경로)
COPY . /app

# 로컬에 포트 공유 / 필수는 아니지만 권장!
EXPOSE 3000

# 이미지에서 컨테이너 생성시 최초 실행
CMD [ "node", "app.mjs" ]

FROM

FROM <Image>:<Tag>
  • 이미지 생성시 기반이미지를 가져오는 명령어
  • 로컬에 이미지 존재 시 해당 이미지를 가져와서 사용
  • 로컬에 이미지 없을 시 Docker Hub에서 이미지를 가져와서 사용

WORKDIR

WORKDIR <Dir>
  • cd 명령어 처럼 경로를 이동하는 명령어
  • 작업 디렉토리를 설정하는 명령어
  • 해당위치에서 RUN, COPY등 명령어를 실행한다.

COPY

COPY <Src> <Destination>
  • 복사하는 명령어
  • 로컬의 파일을 컨테이너로 복사함
  • Destination의 경로는 WORKDIR에서 설정한 경로가 기준

RUN

RUN npm install
  • 명령어를 실행하는 명령어
  • npm run등 사용

EXPOSE

EXPOSE 3030
  • 도커의 포트를 외부에 노출하는 명령어
  • 추후 다시 나옴

CMD

CMD [ "node", "app.mjs" ]
  • 이미지에서 컨테이너 생성시 명령어를 실행하는 명령어
  • 실행같은 작업이 필요할 때 사용

실행해보기

순서

Dockerfile 작성 ->이미지 빌드 -> 실행

이미지 빌드하기

docker build -t [name]:[tag] <src>
  • -t [name]:[tag] : 이름과 태그 지정

이미지 확인하기

docker images

이미지 실행(run)하고 중지(stop)하고 재실행(start)하기

docker run --rm [id]or[name:tag]
docker stop [NAMES]
docker start -a [name]
  • --rm 중지 시 컨테이너 삭제하는 명령어
  • 단, 재실행은 컨테이너를 실행하는 것이기 때문에 --rm을 사용하면 불가

다른 콘솔을 통해 확인해본 결과 잘 실행 중이다



0개의 댓글