zoukankan      html  css  js  c++  java
  • docker定义数据卷及数据卷的备份恢复

    前言:生产环境中使用docker时,往往需要对数据进行持久化(只有把容器导出为镜像,才能够保存写的数据,否则容器删除或者停止,所有数据都会没有),或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作

    容器中管理数据主要有两种方式:
    1、数据卷:容器内数据直接映射到本地主机环境
    2、数据卷容器:使用特定容器维护数据卷。能在容器和主机、容器和容器之间共享数据,并实现数据的备份和恢复。

    本博客主要围绕数据卷容器进行开展~~~

    一、定义数据卷容器

    搭建一个专门的数据卷容器,然后其他容器直接挂载该数据卷,实现多个容器之间共享数据(类似NFS)

    1、docker images 查看现有的镜像

    2、用镜像 install_net,建立数据卷容器 windysai

    docker run -itd -v  /data/docker/  --name  windysai  install_net  bash

    (1)-v /data/docker/  :容器里面

    (2)windysai 名字任意

    3、进入windysai容器

    docker exec -it windysai bash

    ——》会发现容器里面多了一个 /data/docker 的目录

    4、用 centos-6-x86_64 挂载windysai数据卷

    docker run -itd --volumes-from windysai centos-6-x86_64 bash

    (1)进去容器:docker exec -it dfdbe7e8b64 bash

    发现存在数据卷容器的目录   /data/docker

    (2)测试

    mkdir  /data/docker/test;  touch /data/docker/ljy.txt

    5、重新进入windysai 容器里

    ls  /data/docker 有 test 目录和文件 ljy.txt

    、数据卷备份(画了个图才比较好理解 = =)

    如果做了数据卷(容器内数据直接映射到本地主机环境),那就没必要做数据卷的备份,只要定时备份服务器硬盘的数据就行

    如果没有做映射 ——》做数据卷的备份

    【1】备份

    思路:

    使用上面的windysai数据卷新开一个容器,同时把本地的 /vol_data_backup/ 目录挂载到该容器的 /backup 下,这样在容器中 /backup 目录里面新建的文件,就可以直接在/vol_data_backup/  目录中看到了;最后再把 /data/ 目录下面的文件打包成 data.tar,放到 /backupx 下面

    1、在宿主机的磁盘上,创建要备份数据的目录

     mkdir  /vol_data_backup

    2、新建容器,挂在数据卷(共享数据卷 windysai 的/data/docker 目录)

    docker run -itd --volumes-from windysai -v /vol_data_backup/:/backup centos-6-x86_64 bash

    (1)centos-6-x86_64:新容器

    (2)/backup:映射到容器里面的目录

    3、docker exec -it 2b6960b5 bash

    (1)看到 /backup 为空

    (2)/data/docker 存在数据卷分享出来的目录,也就是我们要备份的目录

     (3)备份

     tar -cvf  /backup/data.tar  /data/docker/

    4、退出容器exit,查看宿主机目录

    三、数据卷恢复

    思路:先新建一个数据卷容器,再建一个新的容器饼挂载该数据卷容器,然后再把 tar 包解包

     1、新建第二个数据卷容器

    docker run -itd -v  /data/docker/  --name  second install_net  bash

    2、挂载数据卷,新建容器

    docker run -itd --volumes-from second -v /vol_data_backup/:/backup install_net 

     3、进入容器

    docker  exec -it da94996d1  bash,  ls /bacukup/

     4、在根目录下解压

    cd /

    tar xvf /backup/data_20190110.tar

     

  • 相关阅读:
    阿里云重磅发布DMS数据库实验室 免费体验数据库引擎
    阿里云移动端播放器高级功能---直播时移
    图解SQL的inner join、left join、right join、full outer join、union、union all的区别
    索引覆盖分析
    case when 性能优化
    Eclipse断点种类
    Eclipse高效率开发技巧
    VS Code编辑器
    正则表达式
    JDBC编程之预编译SQL与防注入式攻击以及PreparedStatement的使用教程
  • 原文地址:https://www.cnblogs.com/windysai/p/10250773.html
Copyright © 2011-2022 走看看