Docker Volumeのデータをバックアップ
目的
手順
DBコンテナが使ってるボリューム名とパスを確認する
docker inspect <コンテナ名> でMountsセクションで確認できる
code:json
"Mounts": [
{
"Type": "volume",
"Name": "myapp_dbdata",
"Source": "/var/lib/docker/volumes/myapp_dbdata/_data",
"Destination": "/var/lib/postgresql/data",
Sourceがホスト側の実際のパス
Source を直接バックアップしたらよさそう?
Docker for Macではdockerが仮想マシン内にあるた、このパスはホスト上に存在しない
myapp_dbdata
Docker Volume名。 docker volume ls でも存在を確認できる
名前のフォーマットは <project-name>_<volume-name>
project-nameは docker-compose.yml のあるディレクトリ名(ローカルではべつの名前になってるかも)
volume-nameは docker-compose.yml 内で指定
コマンド
code:bash
$ docker run -it --rm -v myapp_dbdata:/data -v pwd/export:/export myapp tar zcf /export/dbdata.tgz /data
$ ls -l export/
合計 5168
-rw-r--r-- 1 root root 5290255 11月 19 02:08 dbdata.tgz
参考情報