CentOS/Docker

[Docker]Dockerfile 기본 작성

AnKiWoong 2022. 6. 9. 20:49
반응형

간단한 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 작성 마지막에 구문 설정

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

반응형