Docker VolumeをCopy/Renameする方法

Table of Contents

前提

docker volume のデフォルトの機能にcopyやrenameはありません。 https://matsuand.github.io/docs.docker.jp.onthefly/storage/volumes/

Rename docker volume #31154 というissueも立っているが、対応される見込がないです。

interfaceとして提供してくれていないだけで、実態はDocker File System内どこかにはあるはず。 絶対できるはずだという前提のもと調べてみたらできたのでまとめておきます。

準備

docker engine を起動して、 docker volume を作成する。

docker volume create --name=my-volume

CopyやRenameのやり方

justincormack/nsenter1 を立ち上げる。

docker run -it --rm --privileged --pid=host justincormack/nsenter1

docker volume がある場所に移動する。

/ # cd /var/lib/docker/volumes/

/var/lib/docker/volumes # ls -la | grep my-volume
drwx-----x    3 root     root          4096 Feb  9 02:59 my-volume

あとは cp をするなり、 mv をするなりでよしなに。

すぐに認識してくれないみたいなので Docker for Mac に反映するには再起動が必要そう。