热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

docker容器的数据管理数据卷容器

docker容器的数据管理一:数据卷实现数据的永久化,完全独立于容

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


推荐阅读
author-avatar
mobiledu2502916347
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有