
도커파일
도커파일은 이전 이미지 빌드 관련 포스트에서 언급 했듯이, 이미지를 빌드하시 위한 용도로 작성된 파일을 의미합니다.
https://dkkim2318.tistory.com/146
이미지 빌드
이미지를 만드는 방법 이미지를 만드는 방법은 현재 실행 중인 컨테이너 그 상태 그대로 이미지로 만들어 내는 이미지 커밋 방식과 도커 파일을 통해 이미지를 저장하는 이미지 빌드 두가지 방
dkkim2318.tistory.com
생성할 이미지에 대한 정보를 기술해 둔 특성을 지니고 있기 때문에 도커 템플릿으로 불리기도 합니다.
도커파일 의 지시어
도커파일은 명령어가 순차적으로 나열 된 형태로 작성 합니다. 주요 명령어에 대해 살펴보면 아래와 같습니다.
- FROM : 베이스 이미지를 지정 - 일반적으로 이미지를 생성할 떄 무에서 만드는 것이 아니라 베이스 정보를 지정하는 경우가 많음
- COPY : 빌드 컨텍스트 파일을 레이어에 복사
- RUN : 명령어를 실행(새로운 레이어를 추가)
- CMD : 컨테이너 실행 시 실행할 커맨드를 지정하는 명령어
보통 위 4가지 명령어는 도커파일에 가장 보편적으로 많이 사용되는 명령어 이며 이외에도 많은 명령어가 존재합니다. 해당 포스트에서는 전부는 아니지만 자주 사용되는 몇가지 명령어를 소개 하겠습니다.
- LABEL : key-value 형식으로 작성된 메타데이터를 추가한다.
- ENV : 환경변수 설정을 지원한다
- EXPOSE : 컨테이너가 실행될 때 들어오는 트레픽을 특정 포트로 맏아들일 수 있도록 지정한다(listen 포트 지정)
- ADD : 파일 또는 디렉토리를 컨테이너로 복사(COPY와 역할은 동일)
- USER : 컨테이너 안에서 명령을 실행할 유저:유저그룹을 설정한다
- WORKDIR : 작업 디렉토리를 지정한다
- VOLUME : 컨테이너 내 특정 디렉토리를 컨테이너 외부 경로에 마운트 시켜준다
도커파일 작성 실습
명령어를 확인했다면 도커파일로 간단한 웹 프로젝트 이미지를 빌드해 보겠습니다. 빌드할 프로젝트틑 node.js의 간단한 프로젝트이며 프로젝트 코드 설명은 생략하겠습니다.
#base 이미지로 nodejs 14 지정
FROM node:14
# 현재 디렉토리 내용 레이어로 복사
COPY ./ /
#명령어를 실행
RUN npm install
# node js 실행을 위해 npm을 실행
CMD [ "npm", "start" ]
도커 파일은 위와 같은 형태로 구성 되었습니다. 차례 대로 살펴보면 node.js 프로젝트 사용을 위해 node js 14 버전을 base이미지로 지정하고 프로젝트가 위치한 경로의 내용을 컨테이너 레이어로 COPY 명령을 통해 복사합니다. node js 구동에 필요한 npm의 설치와 실행을 RUN 명령어와 CMD를 통해 실행합니다.
해당 도커파일의 작성이 완료 되었다면 터미널 창에서 docker build 명령어를 통해 image를 빌드합니다
$ docker build -t [이미지명:테그] [경로([.]을 지정하면 현재경로)]
해당 명령어를 통해 이미지를 빌드하면

이미지 빌드가 진행 됩니다 이후 docker images 명령어를 통해 이미지를 확인해보면
$ docker images

방금 생성한 이미지가 빌드 된 것을 확인할 수 있습니다. 그렇다면 이 이미지로 컨테이너를 띄워보겠습니다.

임의로 3000번 포트에 해당 프로젝트를 띄우면

위와 같이 빌드된 이미지를 컨테이너에 띄우는 것이 가능합니다
'방법론과 DevOps > Docker' 카테고리의 다른 글
도커 가상 네트워크 (0) | 2025.05.20 |
---|---|
멀티 스테이지 빌드 (0) | 2025.05.15 |
이미지 빌드 (0) | 2025.05.14 |
이미지와 레이어 (0) | 2025.05.13 |
이미지 레지스트리 (0) | 2025.04.24 |