docker volumeのバックアップ/リストアをやるやつを書いた
公開: 11/14/2020, 02:10:20
こういう素朴なスクリプトってなかなか公開されないから、みんな車輪の再発明してるのは内緒なんじゃよ。
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.zstd
をdocker 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用だったりして微妙に思考がズレている。
そんな感じでお気持ちになりながら素朴なスクリプトを用意した感じ。