备份
因为 volume 实际上是 host 文件系统中的目录和文件,所以 volume 的备份实际上是对文件系统的备份,使用 registry 镜像仓库,定期对镜像进行本地备份或上传到 Docker Hub。
恢复
只能使用之前备份的数据。
迁移
如果我们想使用更新版本的 Registry,这就涉及数据迁移,方法是:(1)docker stop 当前 Registry 容器。(2)启动新版本容器并 mount 原有 volume。当然,在启用新容器前要确保新版本的默认数据路径是否发生变化。
销毁
可以删除不再需要的 volume,但一定要确保知道自己正在做什么,volume 删除后数据是找不回来的。
docker 不会销毁 bind mount,删除数据的工作只能由 host 负责。对于 docker managed volume,在执行 docker rm 删除容器时可以带上 -v 参数,docker 会将容器使用到的 volume 一并删除,但前提是没有其他容器 mount 该 volume,目的是保护数据,非常合理。
如果删除容器时候没有一并删除 volume 就会产生孤儿 volumes ,可以用以下方式处理:
docker volumes ls
DRIVER VOLUME NAME
local 03df0d0a2161f568d93ebec93f6923ca1c996ae2339f2cabfbf00a7a9538ec49
docker volume rm 03df0d0a2161f568d93ebec93f6923ca1c996ae2339f2cabfbf00a7a9538ec49
#批量删除 volume
docker volumes rm $(docker volume ls -q)