볼륨 마운트를 직접 확인하기 & 백업

Pak Heonjun·2023년 5월 21일
0

볼륨 마운트를 직접 확인하는 방법

볼륨 마운트에서 해당 영역을 직접적으로 확인하려면 (1) 별개의 리눅스 컨테이너를 연결하여 파일 시스템을 확인, (2) 새로운 컨테이너에 연결하여 동기화되는지 확인 하는 방법이 있다.

볼륨 마운트는 컨테이너를 거치지 않으면 볼륨 안의 내용을 볼 수 없다. 따라서 앞서 실습에서는 docker inspect [컨테이너명] 으로 간접적으로 확인했다.

하지만 컨테이너에 볼륨이 제대로 연결되어 파일 읽기/쓰기가 되는지 확인하는 직접적인 방법이 존재한다. 여기에서는 볼륨 마운트를 확인하는 직접적인 두 가지 방법 을 소개한다.

① 리눅스 컨테이너를 연결하여 파일 시스템을 확인

볼륨을 마운트한 워드프레스 컨테이가 있다고 해보자. 워드프레스에서 데이터를 수정하면 볼륨에 새로운 이미지 파일이 저장 될 것이다. 해당 볼륨을 리눅스 컨테이너(가벼운 busybox)에 마운트 하면, 볼륨의 내용을 리눅스 파일 시스템에서 확인이 가능 하다.

② 새로운 컨테이너에 연결하여 동기화되는지 확인

기존에 볼륨과 연결된 컨테이너에서 작업을 수행하면 볼륨에 반영 될 것이다. 이후 컨테니어를 삭제하고 동일한 볼륨을 새로운 컨테이너에 마운트 하면 새로운 컨테이너도 기존 작업이 반영된 상태로 나타날 것 이다.

볼륨 백업

볼륨 백업은 별개의 리눅스 컨테이너에 볼륨 내용을 압축해 저장하는 방식 을 사용한다.

호스트의 폴더는 복사/붙여넣기로 간단히 백업이 가능하다. 이와 다르게 볼륨은 간단히 복사/붙여넣기가 불가 하다. 볼륨 백업 은 볼륨을 확인할 때처럼 별도의 리눅스 컨테이너를 연결해 볼륨의 내용을 압축해 저장하는 방식 으로 수행한다. 단, 주의할 점컨테이너 생성과 함께 tar 명령어로 백업을 수행 한다는 점이다.

볼륨 백업은 다음의 명령어로 수행할 수 있다. 이 때 볼륨을 사용하는 주 컨테이너는 정지 또는 삭제된 상태여야 한다.

docker run --rm -v 볼륨명:/source -v 백업_저장_폴더명:/target busybox \  
tar cvzf /sake/백업파일이름.tar.gz -C /source .

해당 명령어의 옵션은 하기의 기능을 수행한다.

옵션설정값역할
--rm컨테이너를 수행한 후 바로 삭제
-v볼륨명:/source백업할 볼륨을 busybox 컨테이너 "/source"에 마운트
-v백업_저장_폴더명:/target호스트의 폴더를 busybox 컨테이너 "/target"에 마운트
tarcvzf /target/백업파일명.tar.gz -C /source ."/source"를 압축하여 "/target/백업파일명.tar.gz"로 저장 (cvzf, -C는 압축 옵션)

실제 apa000vol1 이름을 가진 볼륨을 호스트 경로에 저장하는 명령은 다음과 같다.

root@LAPTOP-3H85AI8N:/# docker run --rm -v apa000vol1:/source -v /home/jpark:/target busybox tar cvzf /target/backup_apa.tar.gz -C /source .
Unable to find image 'busybox:latest' locally
latest: Pulling from library/busybox
325d69979d33: Pull complete
Digest: sha256:560af6915bfc8d7630e50e212e08242d37b63bd5c1ccf9bd4acccf116e262d5b
Status: Downloaded newer image for busybox:latest
./
./index.html
root@LAPTOP-3H85AI8N:/# ls home/jpark/
backup_apa.tar.gz  fast-venv  fastapi-data-science

ls 명령어 로 확인하면 바인드 마운트한 호스트 경로에 압축한 파일이 생성된 것을 확인 할 수 있다. 실습한 후, 저장된 압축 파일과 볼륨을 제거하자.

profile
more more

0개의 댓글