devops

도커(Docker) - Dockerfile 작성과 팁 본문

DevOps/Docker

도커(Docker) - Dockerfile 작성과 팁

vata500 2022. 5. 30. 00:29
반응형

컨테이너를 만드는 3 요소

  • Dockerfile - Copy files, Install dependencies, Set environment variables, Run setup scripts
  • Image - Appication(Setting file) Snapshot (변경불가)
  • Container

Dockerfile 작성 예시

FROM node:16-alpine

WORKDIR /app 
//WORKDIR는 리눅스에서 CD와 같은 역할, 디렉토리를 생성하거나 해당 디렉토리로 이동

COPY package.json package-lock.json ./

RUN npm ci 
// install을 한다면 최선버전이 설치되기 때문에 프로젝트 개발버전과 설치버전이 달라질 수 있음 그래서 ci를 사용

COPY index.js .

ENTRYPOINT ["node", "index.js"]

$ docker build -f Dockerfile -t test-image . 

이미지를 빌드하기 위해서 -f는 해당 도커파일 이름, -t는 이미지 이름, 마지막 .은 Build context를 가리킨다. 참고로 Build Context는 명령어 실행의 현재 경로를 지정한다.

$ docker run -d -p 80:80 test-image

컨테이너를 생성하기 위해서 사용하는 명령어다. -d는 detached를 의미하여 백그라운드에서 실행하는 것을 말한다. -p는 포트를 지정한다. host 머신의 포트와 컨테이너의 포트를 설정하는 것.(포워딩)

Dockerfile 작성 시 참고사항

명령어 하나하나가 Layer로 되어 있기 때문에 가장 빈번히 사용되는 것을 나중에 적어야한다. 그래야 수정시 이미지 생성 시간도 단축할 수 있으며 효율도 높아진다.

반응형
Comments