zoukankan      html  css  js  c++  java
  • 数据卷容器及数据迁移

      数据卷是供一个或多个容器使用的特殊目录,该目录利用容器的ufs文件系统为容器提供一些稳定的特性或数据共

    类似于linux系统下的mount(挂载命令)

    数据卷的特点

    数据卷可以在容器之间共享和重用
    
    对数据卷的修改立马会生效
    
    对数据卷的更新不会影响镜像
    
    卷会一值存在,直到没有容器使用

    实例--创建数据卷

    # -v 创建数据卷
    [root@docker ~]# docker run -ti -v /test centos:latest /bin/bash [root@b67fa87fa0ef /]# cd / [root@b67fa87fa0ef /]# ls anaconda-post.log dev home lib64 mnt proc run srv test usr bin etc lib media opt root sbin sys tmp var

    # 将本地的目录挂载到容器中(此处写绝对路径)

    [root@docker ~]# docker run -it --name gz -v /root/s_test:/root/d_test centos:latest /bin/bash

    数据卷容器----专门提供数据卷的容器

    [root@docker ~]# docker run -it -v /datastorage --name datac1 centos:latest
    [root@2472d6fd6c0e /]# ls
    anaconda-post.log  datastorage  etc   lib    media  opt   root  sbin  sys  usr
    bin                dev          home  lib64  mnt    proc  run   srv   tmp  var
    [root@2472d6fd6c0e /]# 

    挂载数据卷容器中的数据卷

    [root@docker ~]# docker run -it --volumes-from datac1 --name testdata centos:latest 
    [root@a8aeac7f6f1a /]# ls
    anaconda-post.log  bin  datastorage  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    [root@a8aeac7f6f1a /]# 

    原理:

      将数据卷容器相应数据卷进行备份,然后将备份文件保存起来,

    在有需要的时候再将备份文件恢复为原来的数据卷,数据卷里面的内容要完整保存

    1.创建一个新容器挂载数据卷容器的数据卷并压缩数据卷

    [root@docker ~]# docker run -it --volumes-from datac1 --name bk -v ${PWD}:/backup  centos:latest tar cvf /backup/test.tar /datastorage
    tar: Removing leading `/' from member names
    /datastorage/
    /datastorage/a.txt
    [root@docker ~]# ls
    abc.txt  busybox.gz                                    docker-engine-selinux-1.12.1-1.el7.centos.noarch.rpm  s_test
    build    docker-engine-1.12.1-1.el7.centos.x86_64.rpm  docker_images.zip                                     test.tar
    [root@docker ~]# tar tf test.tar
    datastorage/
    datastorage/a.txt

    2.恢复

    [root@docker ~]# docker run -it -v ${PWD}:/hf --name hf centos:latest 
    [root@0f445001413a /]# ls
    anaconda-post.log  bin  dev  etc  hf  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    [root@0f445001413a /]# cd hf
    [root@0f445001413a hf]# ls
    abc.txt  busybox.gz                                    docker-engine-selinux-1.12.1-1.el7.centos.noarch.rpm  s_test
    build    docker-engine-1.12.1-1.el7.centos.x86_64.rpm  docker_images.zip                                     test.tar
    [root@0f445001413a hf]# tar -xf  test.tar 
    [root@0f445001413a hf]# ls
    abc.txt  busybox.gz   docker-engine-1.12.1-1.el7.centos.x86_64.rpm          docker_images.zip  test.tar
    build    datastorage  docker-engine-selinux-1.12.1-1.el7.centos.noarch.rpm  s_test
    [root@0f445001413a hf]# 
  • 相关阅读:
    mongodb 的云数据库产品 mlab 的使用
    koa 项目实战(十一)验证登录和注册的 input
    koa 项目实战(十)使用 validator 验证表单
    koa 项目实战(九)passport验证token
    koa 项目实战(八)生成token
    koa 项目实战(七)登录接口
    koa 项目实战(六)注册接口加密
    koa 项目实战(五)全球公用头像的使用
    [C++] 用Xcode来写C++程序[4] 函数
    [控件] 将字符串转换成贝塞尔曲线并执行动画
  • 原文地址:https://www.cnblogs.com/ray-mmss/p/10617896.html
Copyright © 2011-2022 走看看