docker-数据管理

前言:

  docker数据管理也就是数据卷和数据卷容器,实现的是容器和容器的之间的数据,容器和主机的数据间的共享,如何将本地的目录挂载到容器,如何将容器的数据备份和恢复,这就是数据管理

00x1:

  数据卷:可以在容器间共享,数据卷的修改是及时性的,数据卷是一直存在的,类似于linux下的mount

  命令:docker run -v 多个v可以创建多个数据卷。

  举列子:下载一个web镜像:

  

  docker -d -p -name webapp -v /webapp training/webapp

  将本地的文件挂载到容器:

  docker -d -P -name webapp -v /src/webapp:/opt/webapp training/webapp

  这是是将主机的/src/webapp 目录挂载到容器的/opt/webapp目录上

  挂载在/opt/webapp 目录默认是rd 可读可写的,如果是要控制为只读: ro

  docker -d -P -name webapp -v /src/webapp:/opt/webapp:ro training/webapp

  也可以直接挂载文件到容器的目录下:这样把脚本或者代码也可以共享给容器比如:

  docker run -rm -it -v ~/.bash_history:/.bash_history ubuntu /bin/bash 

  在容器中可以有历史记录。 docker -rm 是退出容器后自动清理文件系统

  数据卷容器:

  这个目的是共享持续跟新的数据,就算提供一个容器专门为其他容器挂载数据卷

  创建一个容器dbdata,并且挂载到/dbdata

  以一个普通的ubuntu容器命名为dbdata:

  docker run -it -v /dbdata --name dabdata ubuntu

  

  --volumes-from 是从容器中挂载:

  比如:docker run -it ---volumes-from dbdata --name db1 ubuntu

  docker run -it ---volumes-from dbdata --name db2 ubuntu

  所以这两个db1和db2 就可以实时传输数据通过第三方dbdata的挂载文件dbdata

  

  所以实验下,在dbdata下面创建test文件,观察其他容器:

  

  在db2 下面查看:

  

  00x2:数据的备份

  数据的备份一条命令:

  docker run --volumes-from dbdata -v $(pwd):/backup --name worker ubuntu tar cvf /back/back.tar /dbdata

  看看效果再去理解这条命令:

  

  先是创建一个以ubuntu镜像名字叫worker的容器,然后挂载 dbdata (-volumes-from dbdata)  然后命令: -v $(pwd):/backup  挂载当前目录,到backup目录,后面的tar命令就算把dbdata的数据打包到worker 容器

  的backup/backup.tar内,然后woker容器又是挂载了本地当前目录的,所以直接就在当前目录了,backup.tar

  而恢复就是解压的过程

原文地址:https://www.cnblogs.com/lidaye1928/p/10733278.html