Develop/DevOps

[Grafana] docker로 띄워진 grafana 데이터 백업

재융 2023. 1. 25. 17:24
반응형

업무를 진행하던 와중, Grafana를 특정 plugins에 연결해야하는 업무가 생겼고 이를 진행하려던중에 docker로 띄워진 grafana를 restart를 해줘야만 설치되는점을 확인했다.

 

사실 docker restart를 하는것은 어려운작업은 아니다 간단한 한줄명령어로 가능하니까

docker restart [container ID or container name]

하지만 현재 grafana container를 띄운 명령어를 살펴보았는데 볼륨 마운트가 안되어있는 상태였다. 즉, 현재 띄워진 grafana를 remove하면 기존에 작업했던 대시보드가 전부 날라갈수있다.

 

불행중 다행인건 다른분께서 docker run실행시 --rm 옵션을 안주셨다.

--rm 옵션: 1회성 컨테이너 생성시 docker run의 옵션값. 해당 옵션을 주고 docker stop을 시킬경우 해당 컨테이너 관련된 데이터도 자동으로 삭제된다.

해당 옵션을 안줘서 docker stop명령어까지 실행해도 데이터가 날라가진 않았다. 즉, restart를 바로 실행해도 상관이없었다.

하지만 추후 혹시나 모르는 일을 방지하기 위해서 볼륨을 마운트하기로했다.

 

grafana의 데이터를 백업해두긴위해서는 /var/lib/grafana 폴더만 백업해두면된다. 다음과같은 명령어로 해당 폴더를 복사해온다.

docker cp [container name]:/var/lib/grafana ./

위와같은 명령어를 실행하면 현재 폴더에 /var/lib/grafana폴더가 복사된다.

 

자, 이제 해당 폴더를 mount를 해줄차례다. --rm옵션이 안넣어져있는 container를 stop 및 삭제한다.

docker stop [container name]
docker rm [container name]

 

다시 grafana docker image를 run 해준다. 여기서 주의해줘야하는 점은 --user 옵션에 root로 줘야한다는점이다. 해당 옵션을 안줄경우 정상적으로 volume mount가 안이뤄졌다.

docker run -itd --user root -v /home/test/grafana/grafana:/var/lib/grafana --name grafana -p 3000:3000 grafana/grafana

 

반응형