docker数据卷与数据卷容器
1.什么是数据卷:
数据卷设计的目的,在于数据的永久化,他完全独立于容器的生存周期,因此,Docker不会在容器删除时删除其挂载的数据卷,也不会存在类似的垃圾收集机制,对容器引用的数据卷进行处理。
2.数据卷的特点:
1.数据卷在容器启动时初始化,如果容器使用的镜像在挂载点包含了数据,这些数据会拷贝到新初始化的数据卷中。
2.数据卷可以在容器之间共享重用
3.可以对数据卷里的内容直接修改
4.数据卷的变化不会影响镜像的更新
5.卷会一直存在,即使挂载数据卷的容器已经被删除
3.使用-v实现数据卷的挂载:
gmh@tfubuntu:~$ mkdir vlu gmh@tfubuntu:~$ cd vlu/ gmh@tfubuntu:~/vlu$ touch hostm gmh@tfubuntu:~/vlu$ docker run --name ubun -v /home/gmh/vlu/:/datavlo -it ubuntu:latest root@70e23b2bb849:/# ls bin boot datavlo dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var root@70e23b2bb849:/# ls datavlo/ hostm ##可以看到vlu已经被挂载到容器的datavlo,相应的hostm也存在 root@70e23b2bb849:/# cd datavlo/ root@70e23b2bb849:/datavlo# touch container ##在容器内创建文件container gmh@tfubuntu:~/vlu$ ls container hostm ##可以看到vlu也相应的存在container
4.使用daokerfile创建带有volumes的镜像:
通过daokerfile创建的带有volumes的镜像创建的容器会自动将volumes的目录挂载到宿主机的指定目录,可通过docker inspect查看volumes属性看到。
docker build -t ubunut/dockerfile . ##.表示当前路径下的Dockerfile ##-f :指定要使用的Dockerfile路径 ##docker build -f /home/gmh/vlu/df -t ubuntu:df .
进入容器可以看到容器内创建了想赢得挂载目录
通过docker inspect uf查看挂载目录
5.数据卷容器
命名的容器挂载数据卷,其他容器通过挂载这个容器实现数据共享,挂载数据卷的这个容器成为数据卷容器
使用数据卷挂载数据实际上这个数据卷容器所起到的作用仅仅是将数据挂载的配置传递到挂载了这个数据卷容器的容器中。所以在docker中如果一个数据卷还在被容器使用,那么它就会一直存在。
6.数据卷容器的备份与还原
将数据卷容器的挂载目录通过新容器的挂载目录打包到本地
还原同理:把压缩换成解压即可