minstudio

필수 단축키 용어 사전

도커 볼륨(Volume)으로 데이터 영구 보존하기

데이터 영속성 (Data Persistence)

앞선 실습에서 만든 MySQL 컨테이너를 지우면(docker rm) 저장했던 테이블과 데이터가 전부 날아갑니다. 컨테이너는 본질적으로 '일회성'이기 때문입니다.
이를 해결하기 위해 호스트 컴퓨터의 물리적 디스크 공간을 컨테이너 내부의 디렉토리와 연결(Mount)하는 도커 볼륨(Volume) 기술을 사용해야 합니다.

Docker Volume
볼륨 마운트 실습
# 1. 안전한 '네임드 볼륨(Named Volume)' 생성
docker volume create mysql_data_vol

# 2. 볼륨을 마운트(-v)하여 다시 MySQL 실행
# -v [볼륨이름]:[컨테이너내부경로] 형식을 사용합니다. MySQL의 기본 데이터 저장경로는 /var/lib/mysql 입니다.
docker run -d \
  --name my-safe-mysql \
  -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD=1234 \
  -v mysql_data_vol:/var/lib/mysql \
  mysql:8.0

# 3. 이제 컨테이너를 중지하고 삭제해도 볼륨은 남아있습니다!
docker stop my-safe-mysql
docker rm my-safe-mysql

# 4. 똑같은 볼륨 이름으로 새 컨테이너를 띄우면 기존 데이터가 그대로 복구됩니다.
docker run -d --name new-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 -v mysql_data_vol:/var/lib/mysql mysql:8.0