3.Docker数据卷的备份与还原

1. 准备:

1.创建一个数据卷:

docker run -itd --name test2 -v /home/jamesz2011/data/test2:/test2 ubuntu /bin/bash

2.向数据卷容器中写入数据:

    1. 进入数据卷容器:
docker run exec -it test2 /bin/bash
cd test2
  • 2.创建一个文件并在文件中输入“hello world”:
touch word
echo "hello world" > word
3.Docker数据卷的备份与还原_第1张图片

3.进入宿主机的容器挂在目录:

ls
cd data
cd test2
ls
cat word
3.Docker数据卷的备份与还原_第2张图片

【注意】

  • 1.如果看到输出“hello world”则证明容器数据与宿主机已成功实现数据共享。
  • 2.当容器被删除,宿主机的数据共享目录不会被删除。
  • 3.如果需要从宿主机复制文件到宿主机的数据共享目录,需要使用sudo获取root权限执行复制添加操作。
  • 4.如果新建的数据卷容器关联宿主机已有的数据共享目录,则数据共享目录中的数据会被复制到数据卷容器中 。
  • 5.数据卷的权限只有rw/r,无x权限,默认rw。

2.备份数据卷容器:

    1. 新建一个容器【test2backup】用来备份数据卷容器test2,将数据用tar打包,存储在backup文件中,指定备份的数据卷为test2(容器中的)。
docker run -it --name test2backup --volumes-from test2  -v /home/jamesz2011/backup:/backup ubuntu  tar cvf /backup/test2backup.tar /test2
或者:

  • 2.查看宿主机下是否有test2backup.tar文件:
cd backup
ls
3.Docker数据卷的备份与还原_第3张图片

3.删除数据卷容器test1中的word文件:

cd test2
ls
rm -vf word
ls

4.将test2backup.tar中的数据还原到test2容器中【即将word文件进行恢复操作】。

sudo docker run -v /home/jamesz2011/data/test2 --name test2rec1 ubuntu /bin/bash


sudo docker run --volumes-from test2rec1 -v /home/jamesz2011/backup:/backup ubuntu tar xvf /backup/test2backup.tar

---参考:----test2必须是运行状态

sudo docker run --volumes-from test2 -v /home/jamesz2011/backup:/backup ubuntu tar xvf /backup/test2backup.tar

你可能感兴趣的:(3.Docker数据卷的备份与还原)