Skip to Content
Suffering builds character

3.도커 파일

도커에서는 Dockerfile을 통해 도커 이미지 및 애플리케이션을 직접 패키징할 수 있음

Image ref. 

1. Dockerfile

Dockerfile은 스크립트 형태로 작성된 하나의 파일로, 몇 가지 명령어(instruction)를 통해 작성함

1-1. Dockerfile 스크립트 예시

아래는 web-ping 애플리케이션을 도커 이미지로 패키징하기 위한 스크립트 예시

Dockerfile
FROM diamol/node ENV TARGET="blog.sixeyed.com" ENV METHOD="HEAD" ENV INTERVAL="3000" WORKDIR /web-ping COPY app.js CMD ["node", "/web-ping/app.js"]

FROM, ENV, WORKDIR, COPY 등이 Dockerfile을 작성하기 위한 명령어(Instruction)라고 볼 수 있음

2. 대표적인 Dockerfile 명령어

2-1. FROM

해당 이미지는 다른 이미지인 diamol/node에서 시작하도록 지정

diamol/node 이미지에는 web-ping 애플리케이션을 실행하는데 필요한 Node.js 런타임이 설치되어 있음

2-2. ENV

환경 변수 값을 지정하기 위한 명령어

아래의 형식을 따름

[key]="[value]"

→ TARGET 이름을 가진 변수에는 기본값으로 "blog.sixeyed.com"을 지정

2-3. WORKDIR

컨테이너 내부에 파일 시스템으로 사용할 기본 경로를 지정

Dockerfile
WORKDIR /web-ping

→ /web-ping 경로를 기본 작업 경로로 지정

2-4. COPY

로컬 시스템에서 작성한 파일이나 폴더를 도커 이미지 내 파일 시스템에 복사하는 명령어

기본 작성 패턴

[원본 경로] [복사할 경로]
Dockerfile
COPY app.js

→ 여기서는 복사할 경로를 생략하고 app.js 파일을 도커 이미지 내 파일 시스템의 기본 경로에 복사하도록 지정

2-5. CMD

도커가 이미지를 통해 컨테이너를 생성, 실행하였을 때 수행할 명령어를 지정하는 명령어

Dockerfile
CMD ["node", "/web-ping/app.js"]

→ 컨테이너가 실행되면 node 명령어를 통해 /web-ping 경로 내 app.js 파일을 실행하도록 지정

[!info] Dockerfile 작성 권장 사례 

Last updated on