본문 바로가기
데이터 분석

Docker 이미지(Image)와 컨테이너(Container)의 차이

by hidden-state 2026. 6. 15.

Docker 이미지(Image)와 컨테이너(Container)의 차이

Docker를 처음 접하면 이미지(Image)와 컨테이너(Container)를 같은 개념으로 생각하기 쉽다. 하지만 두 개념은 역할과 목적이 서로 다르다.

Docker를 효과적으로 사용하기 위해서는 이미지와 컨테이너의 차이를 이해하는 것이 중요하다.


Docker란 무엇인가

Docker는 애플리케이션과 실행 환경을 하나의 패키지로 묶어 어디서든 동일하게 실행할 수 있도록 지원하는 컨테이너 기반 플랫폼이다.

개발 환경과 운영 환경이 달라 발생하는 문제를 줄이고 배포 과정을 단순화할 수 있다는 장점이 있다.


Docker 이미지(Image)

Docker 이미지는 컨테이너를 생성하기 위한 설계도 또는 템플릿이다.

애플리케이션 실행에 필요한 코드, 라이브러리, 환경 설정 등이 포함되어 있다.

이미지는 읽기 전용(Read-Only) 상태로 저장되며 직접 실행되는 것은 아니다.

예를 들어 Python 환경이 포함된 이미지나 Nginx 웹 서버 이미지 등을 사용할 수 있다.


Docker 컨테이너(Container)

컨테이너는 이미지를 기반으로 실제 실행된 인스턴스이다.

동일한 이미지로 여러 개의 컨테이너를 생성할 수 있으며 각 컨테이너는 독립적인 실행 환경을 가진다.

컨테이너 내부에서는 애플리케이션이 실제로 동작하며 파일 생성이나 데이터 변경과 같은 작업이 발생한다.

쉽게 말해 이미지는 설계도이고 컨테이너는 설계도를 기반으로 만들어진 실제 제품이라고 볼 수 있다.


이미지와 컨테이너의 차이

구분 이미지(Image) 컨테이너(Container)
역할 실행 환경 템플릿 실제 실행 환경
상태 정적 동적
수정 가능 여부 읽기 전용 실행 중 데이터 변경 가능
관계 컨테이너 생성 기준 이미지를 기반으로 생성

실제 개발 환경에서의 예시

예를 들어 FastAPI 프로젝트를 Docker로 배포한다고 가정해보자.

먼저 Dockerfile을 이용해 FastAPI 실행 환경이 포함된 이미지를 생성한다.

이후 해당 이미지를 실행하면 컨테이너가 생성되고 컨테이너 내부에서 FastAPI 서버가 동작하게 된다.

같은 이미지를 사용하더라도 여러 개의 컨테이너를 생성할 수 있기 때문에 동일한 환경을 쉽게 복제할 수 있다.


정리

Docker 이미지는 애플리케이션 실행 환경이 담긴 템플릿이며 컨테이너는 이미지를 기반으로 실제 실행되는 환경이다.

이미지는 변경되지 않는 설계도 역할을 하고 컨테이너는 실제 프로그램이 동작하는 실행 공간 역할을 수행한다.

Docker를 사용할 때는 이미지를 생성한 뒤 필요한 만큼 컨테이너를 실행하는 구조로 이해하면 된다.