컨테이너가 가진 문제점
Docker를 사용하면 컨테이너 안에서 프로그램을 실행하고, 기능이 추가되면 새 이미지를 만들어 배포할 수 있습니다.
하지만 기존 컨테이너 내부의 변경 사항은 그대로 유지되지 않습니다.
즉, 컨테이너를 새로 생성하면 내부 데이터가 모두 사라지는 문제가 발생합니다.
예를 들어, MySQL 컨테이너 안에 저장된 데이터베이스는 컨테이너를 삭제하는 순간 함께 삭제되죠.
그래서 이런 문제를 해결하기 위해 데이터를 영구적으로 보관할 수 있는 방법,
바로 볼륨(Volume) 이 필요합니다.
Docker Volume(도커 볼륨)이란?

도커의 볼륨(Volume)이란, 컨테이너에서 생성되는 데이터를 호스트 컴퓨터에 영구적으로 저장하기 위한 방법입니다.
즉, 컨테이너 내부의 저장 공간 대신 호스트 컴퓨터의 디렉터리(폴더) 를 연결해서
데이터를 보존하고 공유할 수 있는 구조입니다.
📘 쉽게 말해
컨테이너는 일회용이지만, 볼륨은 “외장하드”처럼 데이터를 안전하게 저장해주는 장치라고 보면 됩니다.
볼륨 사용 명령어
docker run -v [호스트의 절대 경로]:[컨테이너 내부 경로] [이미지명]:[태그명]
예시 👇
docker run -v C:/docker/mysql_data:/var/lib/mysql mysql
이렇게 하면 C:/docker/mysql_data 폴더가
컨테이너 내부의 /var/lib/mysql 경로와 연결되어
데이터가 로컬에 안전하게 저장됩니다.
디렉터리 존재 여부에 따른 차이

1️⃣ 호스트 디렉터리가 이미 존재할 경우
→ 컨테이너의 파일보다 호스트의 파일이 우선 적용됩니다.
즉, 컨테이너의 기존 파일은 덮어씌워집니다.

2️⃣ 호스트 디렉터리가 존재하지 않을 경우
→ 도커가 자동으로 새 폴더를 만들고,
컨테이너 내부에 있던 디렉터리 구조를 그대로 복사해 호스트에 저장합니다.
정리하면
| 항목 | 설명 |
| 컨테이너 내부 데이터 | 컨테이너 삭제 시 함께 삭제됨 |
| 볼륨(Volume) | 호스트의 저장공간에 데이터를 영구 보관 |
| 명령어 | docker run -v [호스트경로]:[컨테이너경로] |
| 장점 | 데이터 손실 방지, 컨테이너 재생성 시 유지 가 |
- 컨테이너는 일회용이지만 볼륨은 영구적이다.
- 볼륨을 연결하면 DB나 로그 등의 데이터를 안전하게 유지할 수 있다.
- 실무에서는 MySQL, PostgreSQL, Redis 등 대부분의 컨테이너가 볼륨 설정을 통해 데이터 유실을 방지한다.
'컨테이너·워크플로우 자동화 > DocKer 기본 및 활용' 카테고리의 다른 글
| Dockerfile의 COPY 명령 (0) | 2025.10.12 |
|---|---|
| Dockerfile 이해하기 (0) | 2025.10.12 |
| Docker로 MySQL 실행시키기 (feat. 볼륨 Volume) (0) | 2025.10.11 |
| 실행 중인 컨테이너 내부에 접속하기 (exec -it) (0) | 2025.10.11 |
| Docker 컨테이너(Container) 로그 조회 (0) | 2025.10.11 |