개발 ━━━━━/Dev

[Docker] Docker Volume 을 이용한 MySQL 데이터 백업

GukJang 2024. 1. 11. 20:59
반응형

Ubuntu 에서 Docker 로 띄워놓은 MySQL 컨테이너의 데이터를 Docker Volume 을 만들어 관리하려 한다.

 

docker inspect mysql_컨테이너_ID

 

로 해당 컨테이너에 마운트 되어 있는 볼륨을 찾는다.

 

 

"Mounts" 부분에서 찾을 수 있다.

 

docker volume create 새로운_volume_이름

 

으로 새로운 볼륨을 생성해주고

 

docker run --rm -v 백업할_volume_이름:/from -v 새로_만든_volume_이름:/to alpine ash -c "cd /from && cp -av . /to"

 

• 백업할_볼륨_이름을 /from 경로에 마운트합니다.
• 새로_만든_볼륨_이름을 /to 경로에 마운트합니다.
• alpine 컨테이너를 시작하고, /from에서 /to로 모든 데이터를 복사합니다 (cp -av . /to).

 

명령어를 실행시켜주면 복사가 시작된다.

 

sudo ls /var/lib/docker/volumes/새로_생성한_volume_이름/_data

 

으로 복사된 데이터를 확인할 수 있고

 

Docker-Compose 를 사용한다면 mysql 부분에

volumes:
	- ${MYSQL_DATA_PATH}:/var/lib/mysql

 

생성한 볼륨 위치를 지정해주고

 

컨테이너로 사용하고 있다면

-v 옵션으로 볼륨 위치를 지정해주고 컨테이너를 실행시켜주면 된다.

 

다시 docker inspect 컨테이너_ID 를 해주어 새로 생성한 볼륨이 정상적으로 마운트 되어 있는지 확인한다.

반응형