centos7下安装docker(13.3volume生命周期管理)
本章讨论:volume的备份,恢复,迁移和销毁
1.备份
通过前面的大量的实验,我们知道volume 是依赖host存在的,是host中的文件或目录,所以volume 的备份实际是对文件系统的备份。
我们之前学习的搭建本地私有仓库registry:所有的上传到本地私有仓库里面的镜像都是存在在host目录中,所以我们只需要定时备份这个目录就可以了
进行备份:
2.恢复
如果数据损坏,直接将之前备份的数据拷贝到/test1中
将test1中的数据删除,我们之前是上传的192.168.7.222/vim这个镜像,下面pull这个镜像
由于我删除了test1中的数据,所以pull失败;我们再将test1的备份数据拷贝回来,看是否能成功pull镜像
依然是not found???原因是什么??
volume的恢复按正常来说只要将之前备份的数据拷贝过来,就可以了,但是本实验应该是有问题的,这个之后再来详细的探讨!!
3.迁移
如果我们想使用新版本的registry,这就涉及到数据迁移,方法是:
1.docker stop当前的registry容器
2.启动一个新版本的容器并mount原有的volume:docker run -d -p 5000:5000 -v /test1:/var/lib/registry registry
标红的路径一定要和源容器中的路径一致,否则迁移不成功
4.销毁
可以删除不再需要的volme,但是一定要清楚自己在干什么,因为volume删除后,数据是找不回来的。
docker 不会销毁bind mount,删除数据的工作职能由host完成;
对于docker managed volume,在删除容器docker rm的时候可以带上-v参数,docker会将容器用到的volume一并删除,但前提是没有其他容器mount 到该volume,目的是保护数据。
如果删除容器的时候没有带-v,这样就会产生孤儿volume,docker提供了volume自命令可以对docker managed volume进行维护:
实验中当我们删除容器的时候没有加-v的参数,但是volume还存在,这种就是孤儿volume,对于这种volume可以使用docker rm volume进行删除
但是通过docker volume ls只能看到volume不能对应具体的容器,我们无法判读哪个是孤儿容器,该如何去管理呢?
可以通过docker volume prune删除孤儿volume
批量删除孤儿volume:docker volume rm $(docker volume ls -q)
- Centos7下docker安装log.io日志监控
- centos7下安装docker(17.2docker监控---weave scope)
- CentOS 7下安装docker
- docker学习2--centos7下安装
- centos7下安装docker(9.3容器对资源的使用限制-Block IO))
- CentOS 7下安装 Dubbo Admin管理控制台
- CentOS 7下安装docker
- centos7下安装docker(26如何配置Health Check)
- centos7下安装docker(13.4容器volume总结)
- centos7下安装docker(15.5容器跨主机网络--flanneld)
- Docker1.8在Centos7下的安装
- centos7下安装docker 17.x
- centos7下安装docker(20.docker swarm start)
- CentOS7下安装Docker
- centos7下安装docker(13.1docker存储--data volume)
- centos7下安装docker(23.docker-swarm之如何访问service)
- Docker学习笔记3:CentOS7下安装Docker-Compose
- Centos7下安装Aria2教程 之 Aria2 一键安装管理脚本
- CentOS7下安装docker
- centos7下安装docker(3.3创建镜像--修改dockerfile)