4、Docker容器的数据管理
数据卷的特点:
1.数据卷在容器启动时初始化,如果容器使用的镜像在挂载点包含了数据,这些数据会被拷贝到新初始化的数据卷中
2.数据卷可以在容器之间共享和重用
3.可以对数据卷里的内容直接进行修改
4.数据卷的变化不会影像镜像的更新
5.卷会一直存在,即使挂载数据卷的容器已经被删除
数据卷的使用:
1.为容器添加数据卷
docker run -v /datavolume:/data -it centos /bin/bash
如:
docker run --name volume -v ~/datavolume:/data -itd centos /bin/bash
注:~/datavolume为宿主机目录,/data为docker启动的volume容器的里的目录
这样在宿主机的/datavolume目录下创建的数据就会同步到容器的/data目录下
为数据卷添加访问权限
docker run --name volume1 -v ~/datavolume1:/data:ro -itd centos /bin/bash
添加只读权限之后在docker容器的/data目录下就不能在创建文件
了,为只读权限;在宿主机下的/datavolume1
下可以创建东西
使用dockerfile构建包含数据卷的镜像
dockerfile指令:
volume ["/data"]
cat dockerfile
FROM centos
VOLUME ["/datavolume3","/datavolume6"]
CMD /bin/bash
使用如下构建镜像
docker build -t="volume" .
启动容器
docker run --name volume-dubble -it volume
会看到这个容器下有两个目录,/datavolume3和/datavolume6
5、Docker的数据卷容器
什么是数据卷容器:
命名的容器挂载数据卷,其他容器通过挂载这个容器实现数据共享,挂载数据卷的容器,就叫做数据卷容器
挂载数据卷容器的方法
docker run --volumes-from [container name]
例:
docker run --name data-volume -itd volume
(volume这个镜像是上面创建的带两个数据卷/datavolume3和/ddatavolume6的镜像)
docker exec -it data-volume /bin/bash
(进入到容器中)
touch /datavolume6/lucky.txt
退出容器exit
创建一个新容器挂载刚才data-volume这个容器创建的数据卷
docker run --name data-volume2 --volumes-from data-volume -itd centos /bin/bash
进入到新创建的容器
docker exec -it data-volume2 /bin/bash
查看容器的/datavolume6目录下是否新创建了lucky.txt文件
cd /datavolume6
可以看见有刚才在上一个容器创建的文件lucky.txt
6、docker数据卷的备份和还原
6.1、数据备份方法
docker run --volumes-from [container name] -v $(pwd):/backup centos tar czvf /backup/backup.tar [container data volume]
例子:
docker run --volumes-from data-volume2 -v /root/backup:/backup --name datavolume-copy centos tar zcvf /backup/data-volume2.tar.gz /datavolume6
6.2、数据还原方法
docker run --volumes-from [container name] -v $(pwd):/backup centos tar xzvf /backup/backup.tar.gz [container data volume]
例:进入容器删除文件进行还原测试
docker exec -it data-volume2 /bin/bash
cd /datavolume6
rm -rf lucky.txt
还原:
docker run --volumes-from data-volume2 -v /root/backup/:/backup centos tar zxvf /backup/data-volume2.tar.gz -C /datavolume6
进入容器查看:
docker exec -it data-volum2 /bin/bash
cd /datavolum6
可以看到还原后的数据
作者:wiki 创建时间:2024-07-19 22:22
最后编辑:wiki 更新时间:2024-08-13 10:12
最后编辑:wiki 更新时间:2024-08-13 10:12