본문 바로가기

CentOS/Docker

[Docker]Dockerfile 기본 작성

반응형

간단한 Dockerfile 작성

# Dockerfile

 

 

- FROM 

FROM : Docker Base Image (기반이 되는 이미지, <이미지 이름>:<태그> 형식으로 설정)

ex>

FROM node

node를 사용해서 이미지를 생성.

 

- WORKDIR

WORKDIR : "RUN", "CMD", "ENTRYPOINT" 명령이 실행될 작업 디렉터리

ex>

WORKDIR /app

작업 디렉터리를 /app으로 설정.(추후 모든 소스 코드도 여기에 생성)

 

- COPY

COPY : 파일 복사

ex>

COPY . /app

맨 처음 .은 Dockerfile이 있는 폴더를 의미함(host file system)

두번째 .은 그 파일을 저장해야 되는 내부 디렉터리를 의미(image/container file system)

Dockerfile 이 있는 폴더에 있는 모든 내용을 컨테이너 내부에 있는 /app 폴더로 모두 복사.

만약 /app 폴더가 존재하지 않는 경우에는 이미지와 컨테이너에 생성.

 

- RUN

RUN : Shell Script 또는 명령을 실행

ex>

RUN npm install

Dockerfile이 있는 폴더에 있는 파일을 이미지에 복사한 후 이미지에서 해당 명령을 실행

COPY 구문이 실행 된 뒤 npm install을 실행

 

- CMD

CMD : 컨테이너가 실행되었을 때 명령이 실행

ex>

CMD ["node", "server.js"]

CMD 구문은 배열로 작성

이미지를 기반으로 컨테이너가 생성될 때마다 컨테이너 내부에 node 명령을 사용하여 server.js를 실행

 

- EXPOSE

EXPOSE : 호스트와 연결할 포트 번호를 설정한다.

ex>

EXPOSE 80

Dockerfile 작성 마지막에 구문 설정

우리의 로컬 시스템에 특정 포트를 노출하고 싶을 경우 사용

반응형

'CentOS > Docker' 카테고리의 다른 글

[Docker]Docker build 기본 순서  (0) 2022.06.08
[Docker][k8s]kubespray - kubernetes 설치  (0) 2022.06.04
[Docker][k8s]minikube - helloworld  (0) 2022.06.03
[Docker]빌더 패턴  (0) 2022.06.02
[Docker]CMD vs ENTRYPOINT  (0) 2022.05.25