作者:mobiledu2502916347 | 来源:互联网 | 2023-10-17 15:59
docker容器的数据管理
一:数据卷实现数据的永久化,完全独立于容器的生存周期。
数据卷可以在容器之间共享和重用
可以对数据卷里的内容直接进行修改
数据卷的变化不会影响镜像的更新
卷会一直存在,即使挂载数据卷的容器已经被删除
数据卷的使用
为容器添加数据卷
docker run -v 主机目录:容器目录 -it centos /bin/bash/
设置数据卷访问权限为只读
docker run -v 主机目录:容器目录:ro -it centos /bin/bash/
使用dockerfile构建包含数据卷的镜像
dockerfile指令:
VOLUME [“目录”] 目录:例如 /data
使用dockerfile创建的数据卷不能直接映射主机中的目录,而是在使用
dockerfile创建的镜像运行容器时,在主机相应目录下创建随机目录名的目录。
所以使用同一个镜像创建的不同容器,数据卷在主机中映射的目录也不一样。
二:数据卷容器:挂载了数据卷的容器,叫做数据卷容器。其它容器通过挂载这个容器实现数据共享。
先运行一个挂载了数据卷的容器(sjj-jingxiang为:使用dockerfile构建的包含数据卷的镜像)
docker run -it --name sjjrq sjj-jingxiang
运行一个容器并挂载刚才运行的数据卷容器(使用–volumes-from参数)
docker run -it --name ceshi1 --volumes-from sjjrq centos /bin/bash/
再运行一个容器并挂载刚才运行的数据卷容器(使用–volumes-from参数)
docker run -it --name ceshi2 --volumes-from sjjrq centos /bin/bash/
这样容器ceshi1和ceshi2就共享使用相同的数据卷,实现数据共享。
现在即使删除数据卷容器sjjrq,ceshi1和ceshi2这两个容器中的数据卷依然存在并可用。
三:docker数据卷的备份和还原
备份方法:运行一个容器,通过–volumes-from参数挂载需要备份的容器的数据卷,再通过-v参数挂载一个映射
到主机本地备份目录的数据卷,并运行tar或cp命令,把数据卷中的数据备份到备份目录。
docker run --volumes-from ceshi1 -v /home/cs/beifen:/backup --name beifenceshi centos tar cvf /backup/bf.tar /shujujuanmulu
参数说明:
ceshi1:之前运行的挂载了数据卷的容器,现在要备份数据卷中的数据
/home/cs/beifen:主机本地备份目录
/backup:容器中的备份目录
/shujujuanmulu:要备份的容器中的数据卷目录
还原方法:使用解压缩或cp命令
docker run --volumes-from ceshi1 -v /home/cs/beifen:/backup --name beifenceshi centos tar xvf /backup/bf.tar /shujujuanmulu