Docker 컨테이너와 이미지 개념 쉽게 이해하기 (초보자 가이드)
개발을 하다 보면 Docker(도커)라는 기술을 자주 접하게 됩니다. 특히 처음 배우는 개발자들이 가장 많이 헷갈리는 개념이 바로 Docker Image(이미지)와 Docker Container(컨테이너)입니다.
이 글에서는 Docker를 처음 접하는 분들도 이해할 수 있도록 이미지와 컨테이너 개념을 가장 쉽게 설명해 보겠습니다.
목차
- Docker란 무엇인가
- Docker Image(이미지) 개념
- Docker Container(컨테이너) 개념
- 이미지와 컨테이너 차이
- Docker 동작 흐름
- 정리
Docker란 무엇인가
Docker는 애플리케이션 실행 환경을 패키지로 만들어 어디서든 동일하게 실행할 수 있게 해주는 기술입니다.
예를 들어 이런 문제를 경험해본 적이 있을 것입니다.
- 개발 PC에서는 잘 실행되는데 서버에서는 실행이 안됨
- Node 버전이 달라서 오류 발생
- 라이브러리 충돌 문제
- 운영체제 환경 차이
Docker를 사용하면 이런 문제를 해결할 수 있습니다.
프로그램 + 실행환경을 하나로 묶어
- 내 컴퓨터
- 테스트 서버
- 운영 서버
모든 환경에서 동일하게 실행할 수 있습니다.
Docker Image(이미지) 개념
Docker Image는 컨테이너를 만들기 위한 설계도입니다.
쉽게 말하면 프로그램 실행을 위한 패키지입니다.
예를 들어 Node 서버를 실행한다고 가정해 보겠습니다.
이미지에는 다음과 같은 정보가 포함됩니다.
- 운영체제
- Node.js 버전
- 라이브러리
- 실행 명령어
예시 Dockerfile
FROM node:18
WORKDIR /app
COPY . .
RUN npm install
CMD ["node","server.js"]
이 Dockerfile을 빌드하면 Docker Image가 생성됩니다.
이미지는 실행되지 않고 컨테이너를 생성하기 위한 템플릿 역할을 합니다.
Docker Container(컨테이너) 개념
Docker Container는 이미지를 실행한 상태입니다.
쉽게 말하면 실제로 실행 중인 프로그램입니다.
이해하기 쉬운 비유를 보겠습니다.
| 개념 | 비유 |
|---|---|
| Docker Image | 붕어빵 틀 |
| Docker Container | 실제 붕어빵 |
Docker는 다음과 같은 흐름으로 동작합니다.
이미지 → 컨테이너 생성 → 프로그램 실행
예시 명령어
docker run nginx
이 명령을 실행하면 다음 과정이 자동으로 진행됩니다.
- nginx 이미지 다운로드
- 컨테이너 생성
- nginx 서버 실행
이미지와 컨테이너 차이
| 구분 | Docker Image | Docker Container |
|---|---|---|
| 개념 | 실행 설계도 | 실행된 상태 |
| 역할 | 컨테이너 생성 | 프로그램 실행 |
| 상태 | 정적 | 동적 |
| 개수 | 하나 | 여러 개 생성 가능 |
예를 들어 nginx 이미지 하나로 여러 개의 컨테이너를 실행할 수 있습니다.
Docker 동작 흐름
Docker는 다음 순서로 동작합니다.
1️⃣ Dockerfile 작성
2️⃣ 이미지 생성
docker build
3️⃣ 컨테이너 실행
docker run
전체 구조
Dockerfile
↓
Docker Image
↓
Container
↓
Application 실행
실제 예시
docker build -t myapp .
docker run -p 3000:3000 myapp
이렇게 하면 이미지 생성 후 컨테이너가 실행되고 서버가 동작합니다.
정리
Docker 핵심 개념을 한 줄로 정리하면 다음과 같습니다.
Docker Image = 실행 설계도
Docker Container = 실행된 프로그램
동작 흐름은 다음과 같습니다.
Dockerfile → Image 생성 → Container 실행
이 두 개념만 이해하면 Docker 구조의 대부분을 쉽게 이해할 수 있습니다.
자주 묻는 질문 (FAQ)
Docker 이미지 하나로 여러 컨테이너를 만들 수 있나요?
가능합니다. 하나의 이미지로 여러 개의 컨테이너를 실행할 수 있습니다.
컨테이너를 삭제하면 이미지도 삭제되나요?
아닙니다. 컨테이너와 이미지는 별개입니다.
Docker와 VM은 무엇이 다른가요?
VM은 운영체제를 포함하지만 Docker는 컨테이너 기반 가상화라 훨씬 가볍습니다.
'개발 > 도커(DOCKER)' 카테고리의 다른 글
| Docker 컨테이너 삭제 및 정리 방법 (실무에서 자주 쓰는 명령어) (1) | 2026.03.18 |
|---|---|
| Docker Compose 기본 사용법 정리 (초보자 쉽게 이해하기) (0) | 2026.03.18 |