设为首页 收藏本站
查看: 755|回复: 0

[经验分享] docker数据管理

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-3-13 10:07:34 | 显示全部楼层 |阅读模式
1. 挂载宿主机上面的目录到容器里(实现宿主机和容器数据共享)
  • docker run -tid -v /data/:/data aming bash //-v 用来指定挂载目录,:前面的/data/为本地目录,:后面的/data/为容器里的目录 (在启动容器的时候才能挂载)
  • 例子:docker run -itd -v /data/:/data centos bash (centos 位image镜像的名字)
  • 注意:不管是在docker容器里删除还是在宿主机上面删除,都会消失的,但是把整个dokcer容器给删除了,数据不会丢失的


2 定义数据卷容器


    • 有时候,我们需要多个容器之间相互共享数据,类似于linux里面的NFS,所以就可以搭建一个专门的数据卷容器,然后其他容器直接挂载该数据卷。
    • 首先建立数据卷容器
    • dockerrun -itd -v /data/ --name testvol aming/centos  bash  //注意这里的/data/是容器的/data目录,并非本地的/data/目录。
    • 1
      2
      例子:docker run -itd -v /data/ --name hu centos bash
      564c2b15b1aa8b9a492ca6ac65157aa3b9824ec0e48328feaeefd24658ba1772



    • 说明:centos 是镜像的名字,hu是自定义的容器卷名字
    • 然后让其他容器挂载该数据卷
    • docker run -itd --volumes-from testvol aming bash
    • 1
      2
      例子:root@docker /]# docker run -itd --volumes-from hu cnetos-6-x86  bash
      4147a90ed6d631577cc2f67f17915af2f413c74f32848c0310a12e36d672d693



    • 说明:cnetos-6-x86 是镜像的名字  hu 必须跟上面的名字一样
      上面的414这个容器已经挂载了上面容器卷的data目录
    • 同一个镜像可以多次执行这个命令 ,每个生成的id都不一样
    • 1
      2
      docker run -itd --volumes-from hu --name web1 cnetos-6-x86 bash
      62d4e94ed8f35a6d9ee2c0798ac1841cc8d1afa8e236f2748ef23b7910a277b3



    • 验证: 可以登录到一个容器里面看是否挂载上了 最后跟数据卷容器对比
    • docker exec -it  62d4e /bin/bash  


3 备份容器里面的数据
  • mkdir/vol_data_backup   ##在宿主机上面建立一个备份目录
  • docker run -itd --volumes-from testvol -v  /vol_data_backup/:/backup centos bash
  • 例子:[iyunv@docker /]# docker run -itd --volumes-from  hu  -v /vol_data_backup/:/backup centos bash  

##把宿主机上面的vol_data_backup 这个目录挂载到容器里面的back目录下并且同时把容器卷也挂载上(就是hu)
  • de35d1af7e2ad8bc8784005f41faca12df89de7056b5a8f9781f9b3cff66c7a4
  • tar cvf /backup/data.tar /data/   ##把data目录下的文件打包放到backup目录下,即会自动同步到宿主机上面的vol_data_backup 这个目录下即容器上面的数据会保存到宿主机上面


4 恢复数据到新容器
  • 思路: 先新建一个数据卷容器,再建一个新的容器并挂载该数据卷容器,然后再把tar包解包。
  • 新建数据卷容器:docker run -itd -v /data/ --name testvol2 centos bash (会产生一个新的容器卷)
  • 例子:docker run -itd -v /data/ --name testvol2 centos bash
  • 424b50ef2554067012301efaf94a711779c0419cee734886f3cae0487af6187f
  • 挂载数据卷新建容器,并解包:
  • docker run -itd --volumes-from testvol2  -v /vol_data_backup/:/backup centos
  • ##把原来宿主机上面的备份的那个目录挂载到新的容器里

  • tar xvf /backup/data.tar   
  • 也可以先登录到这个容器之中,然后在解压



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-350839-1-1.html 上篇帖子: docker网络设置 下篇帖子: docker的安装 及基本的命令
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表