hanker

Docker 용어 정리: Docker Image 란 무엇일까? 본문

SERVER/DOCKER

Docker 용어 정리: Docker Image 란 무엇일까?

hanker 2024. 11. 26. 00:16
반응형

Docker Image는 Docker 컨테이너를 생성하기 위한 템플릿이다.

이미지는 애플리케이션이 실행되기 위해 필요한 모든 파일, 라이브러리, 의존성, 설정 등을 포함한 읽기 전용 파일다.

 

컨테이너는 이러한 이미지를 기반으로 생성되며, 이미지를 사용하여 일관된 환경에서 동일한 결과를 보장할 수 있게 된다.

 

이미지는 계층 구조로 이루어져 있으며, 각 계층은 파일 시스템의 변경사항(예: 새로운 파일 추가, 기존 파일 변경)을 나타낸다.

이러한 계층적 구조 덕분에 Docker 이미지는 중복을 최소화하고, 저장 공간을 절약할 수 있다.

예를 들어, 여러 개의 이미지가 동일한 기반 계층(예: 동일한 OS 환경)을 공유할 경우, 해당 계층은 한 번만 저장되고 모든 이미지에서 재사용된다.

 

이미지는 일반적으로 Dockerfile이라는 텍스트 파일을 통해 생성된다.

Dockerfile에는 이미지 생성 과정에서 필요한 명령어들이 정의되어 있으며, 이를 통해 자동화된 방식으로 이미지를 빌드할 수 있게 된다.

 

 

 

Docker Image의 주요 특징

 

읽기 전용 템플릿: Docker Image는 읽기 전용이며, 애플리케이션 실행에 필요한 모든 파일과 설정이 포함되어 있다.

계층적 구조: 이미지는 여러 계층으로 구성되어 중복을 최소화하고 효율적인 저장 공간 사용을 가능하게 한다.

Dockerfile로 생성: 이미지는 Dockerfile을 통해 생성되며, 이 파일은 이미지 빌드에 필요한 일련의 명령어들을 정의한다.

 

 

 

Dockerfile이란?

 

Dockerfile은 Docker 이미지를 만들기 위해 필요한 명령어들이 정의된 텍스트 파일이다.

이 파일은 단계별로 이미지를 빌드할 수 있는 명령어들을 포함하며, 각 명령어는 이미지의 새로운 레이어를 형성한다.

일반적인 Dockerfile 명령어는 다음과 같다.

 

○ FROM: 기본 이미지 설정 

○ WORKDIR: 작업 디렉터리 설정 ( 설정 후 명령어들이 모두 해당 디렉터리 내에서 실행)

RUN: 이미지를 빌드하는 동안 실행할 명령어 (예: 패키지 설치)

COPY: 파일을 이미지 내 특정 경로에 복사

CMD: 컨테이너가 시작될 때 실행할 기본 명령어

○ EXPOSE: 네트워크 포트를 지정하는 명령어

더보기

# 베이스 이미지로 최신 Node.js 이미지 사용
FROM node:latest

# 작업 디렉터리 설정
WORKDIR /app

# 패키지 파일을 컨테이너로 복사
COPY package.json ./

# 의존성 설치
RUN npm install

# 애플리케이션 파일을 컨테이너로 복사
COPY . .

# 컨테이너가 시작될 때 실행할 명령어 설정
CMD ["node", "app.js"]

# 컨테이너가 외부와 통신하기 위해 사용하는 포트 설정
EXPOSE 8080

Dockerfile을 통해 이미지를 빌드하면, 이러한 명령어들이 순차적으로 실행되면서 최종 Docker 이미지가 만들어진다.

 

 

 

Docker Image의 용도

 

일관된 배포 환경 제공: Docker Image를 사용하면 개발, 테스트, 운영 환경에서 동일한 애플리케이션 환경을 보장할 수 있다.

빠른 배포 및 확장: 이미지를 이용해 새로운 컨테이너를 신속하게 생성할 수 있어, 배포 및 확장이 매우 빠르다.

버전 관리: 이미지는 특정 버전으로 태그를 달 수 있어, 특정 버전의 애플리케이션을 쉽게 배포하거나 롤백할 수 있다.

 

 

 

끝.

반응형