Skip to main content

Docker容器的数据管理

Docker容器的数据卷

数据卷

数据卷是一个特殊的目录,它将主机目录直接映射进容器。可供一个或多个容器使用。

数据卷设计的目的就是为了 数据的持久化,它完全独立与容器的生命周期。因此,容器删除时,不会删除其挂载的数据卷,也不会存在类似的垃圾机制对容器存在的数据卷进行处理。

数据卷的特性:

  • 数据卷在容器启动时初始化,如果容器使用的镜像在挂载点包含了数据,这些数据会拷贝到新初始化的数据卷中

  • 数据卷可以在容器之间共享和重用

  • 可以对数据卷里的内容直接修改,修改回马上生效,无论是容器内操作还是本地操作

  • 对数据卷的更新不会影响镜像的更新

  • 数据卷会一直存在,即使挂载数据卷的容器已经被删除

在容器中创建一个数据卷 

使用的命令如:

$ sudo docker run -it -v ~/datavolume:/data ubuntu /bin/bash

其中-v,表示在容器中创建一个数据卷。 

~/datavolume:/data,表示主机的目录~/datavolume映射到容器中的/data目录。

设置数据卷只读权限

$ sudo docker run -it -v ~/datavolume:/data:ro ubuntu /bin/bash

数据卷容器

用户需要在多个容器之间共享一些数据,就可以使用数据卷容器。

命名的容器挂载数据卷,其他容器通过挂载这个容器实现数据共享,挂载数据卷的容器,就叫数据卷容器。

1.先创建一个容器

2.然后挂载。

挂载数据卷容器的方法:

$ sudo docker run --volumes-from 容器名

数据卷的备份和还原

数据卷备份使用的命令:

$ sudo docker run --volumes-from 存在的容器名 -v $(pwd):/backup --name 新建的容器名 镜像名 tar cvf /backup/backup