docker volumeのバックアップ/リストアをやるやつを書いた

こういう素朴なスクリプトってなかなか公開されないから、みんな車輪の再発明してるのは内緒なんじゃよ。

mohemohe/backer

backer backup volume_name archive_name$HOME/.local/backer/archive_name.tar.zstdとして保存される。
backer restore archive_name volume_name$HOME/.local/backer/archive_name.tar.zstddocker volume create volume_nameしつつ/var/lib/docker/volumes/volume_nameに書き戻す。
その他はbacker helpで。

んで、なんでこんなことをしようかと思ったのかというと、ギョームの開発でpostgresのコンテナにぶら下げてるvolumeを適宜スナップショット的に保存したかった。
volumeを使っていなければdocker commitでいいんだけど、volumeを使っているとcommitでは(たぶん)どうにもならない。
moby/mobyのissueでは、volumeのsnapshotが欲しいぜ!とか書かれてるのに、議論が発散したままcloseされてる。
ほんま使えねーなこいつら。

この手のvolumeをバックアップするやつはGitHubを漁ればいくつかあるんだけど、S3とかのオブジェクトストレージに保存したり、Data Volume Container用だったりして微妙に思考がズレている。
そんな感じでお気持ちになりながら素朴なスクリプトを用意した感じ。