개발/개발도구

[docker] 컨테이너(Container), 이미지(Image), 볼륨(Volume) 개념 정리

Mr.Lee 하루 2025. 8. 13. 08:07

안녕하세요. 도커를 처음 접하게 되었습니다.
좌측 메뉴에 보면 Containers, Images, Volumes 가 있는데 개념에 대해서 헷갈려
정리하고자 합니다.


🐳 Docker 기본 개념

Docker는 애플리케이션을 빠르고 안정적으로 배포하기 위한 컨테이너 기술입니다.
이 문서에서는 컨테이너(Container), 이미지(Image), 볼륨(Volume) 개념을 쉽게 이해할 수 있도록 정리했습니다.



1. 컨테이너(Container)란?

컨테이너는 애플리케이션이 실행되는 독립된 환경입니다.
운영체제 위에서 실행되지만, 마치 별도의 작은 컴퓨터처럼 동작합니다.

특징

  • 격리성(Isolation) : 다른 컨테이너와 독립적으로 실행
  • 경량성(Lightweight) : 가상머신보다 빠르고 리소스 절약
  • 일관성(Consistency) : 어디서 실행해도 동일한 결과

예시

docker run -d --name mynginx nginx

위 명령을 실행하면 nginx 웹서버 컨테이너가 생성되고, Containers 탭에서 실행 상태를 확인할 수 있습니다.



2. 이미지(Image)란?

이미지는 컨테이너를 만들기 위한 설계도입니다.
애플리케이션, 라이브러리, 설정 파일이 모두 포함된 읽기 전용 템플릿입니다.

특징

  • 불변성(Immutable) : 한 번 만든 이미지는 변경 불가 (새로 빌드해야 함)
  • 버전 관리(Tag) : nginx:1.25, python:3.12처럼 버전 구분 가능
  • 이식성(Portable) : 다른 OS, 서버에서도 동일 실행 가능

예시

docker pull nginx

Docker Hub에서 nginx 이미지를 다운로드하고, Images 탭에서 확인할 수 있습니다.



3. 볼륨(Volume)란?

볼륨은 컨테이너와 호스트 PC 사이에서 데이터를 영구 저장하는 공간입니다.
컨테이너가 삭제되더라도 데이터는 유지됩니다.

특징

  • 영속성(Persistence) : 컨테이너 삭제 후에도 데이터 보존
  • 공유성(Sharing) : 여러 컨테이너가 같은 볼륨을 공유 가능
  • 백업 용이성 : 호스트에서 직접 접근 가능

예시

docker volume create mydata
docker run -v mydata:/app/data nginx

mydata라는 볼륨이 생성되어 /app/data에 연결됩니다.



4. 컨테이너, 이미지, 볼륨 관계

  • 이미지 : 설계도 (Blueprint)
  • 컨테이너 : 설계도를 실행한 실제 앱 (Instance)
  • 볼륨 : 앱의 데이터를 보관하는 저장소 (Storage)
개념 역할 예시
이미지(Image) 앱 실행을 위한 설계도 nginx:latest
컨테이너(Container) 이미지를 실행한 인스턴스 mynginx
볼륨(Volume) 데이터 저장소 mydata


5. 요약

  • 이미지: 앱의 설계도
  • 컨테이너: 앱이 실제로 실행되는 환경
  • 볼륨: 데이터 영구 저장소

이 세 가지를 이해하면 Docker의 핵심 동작 원리를 파악할 수 있습니다.


💡 Tip: 실제로 사용하면서 익히는 것이 가장 빠른 학습 방법입니다.
예를 들어, 이미지를 pull → 컨테이너로 run → 데이터를 volume에 저장하는 실습을 추천합니다.


이상 정리를 마치겠습니다. 실습을하게 되면 다시 기록해 두겠습니다.