zoukankan      html  css  js  c++  java
  • Docker——容器卷管理

    概述

    为了能够实现容器数据的持久化,Docker提出了卷(volume)的概念。卷就是目录或者文件,由docker Daemon挂载到容器中,卷中的数据在容器被删除之后还是可以访问,从而实现持久化。

    Docker提供了两种管理数据的方式,数据卷和数据卷容器。

    基础管理

    • 数据卷
      在启动镜像的时候,通过-v标签来创建新卷或者挂载已有的数据卷。
    • 容器卷
      通过create命令创建新的容器卷,然后在启动应用镜像时,使用-volume-from来挂在容器卷。

    Docker卷管理的问题:

    • 只支持本地数据卷,不能挂在远程服务器的卷。
    • 缺乏对数据卷生命周期的有效关系,例如不能使用Docker命令查看系统上的所有卷。会浪费空间。

    卷插件

    通过插件可以解决Docker卷自身的一些不足。

    卷插件的工作原理:
    Docker定义了一套标准的卷插件REST API,Docker自身实现了这套API的客户端,它会按照步骤发现、激活插件。当Docker需要完成创建、挂载、删除等操作的时候,它会向插件发送对应的REST API,然后由插件完成真在的数据底层工作。

    在这里插入图片描述
    本质上,卷插件就是一个服务器,接收Docker的命令,名给予相应的操作。因为它们通过REST API实现的,所以,可以进行远程主机的卷管理,也很灵活方便。

    卷插件的API接口:

    • Plugin.Active:用于激活一个插件,是Docker与卷插件的握手报文。
    • VolumeDriver.Create:创建一个卷,Docker会发送卷的名称和参数给插件,然后插件在本地创建一个卷。
    • VolumeDriver.Mount:挂在一个卷到本机,Docker把卷的名称和参数发给插件,插件会返回一个本地路径给Docker,这个路径就是卷的位置,然后Docker就会将这个路径挂载到容器。
    • VolumeDriver.Path:一个卷创建成功之后,Docker调用这个API来获取卷的路径。
    • VolumeDriver.Unmount:卸载卷,Docker告诉插件这个卷不用了,插件就可能做相应的清理工作。
    • VolumeDriver.Remove:删掉特定的卷。

    整个卷插件体系是通过卷的名称来管理的。

    已有的卷插件:

    • Convoy:一种基于本地存储的单机版插件。
    • FLocker:支持多种后台驱动,包括OpenStack等,不支持卷共享,单点问题。
  • 相关阅读:
    第一课时之导读
    python学习之第十六课时--缩进(indentation)
    python学习之第十六课时--函数的作用及定义
    python学习之第十五课时--存址方式及拷贝
    Linux学习之第七课时--链接(link)文件
    Linux学习之第六课时--文件和目录操作管理命令
    Linux学习之第五课时--文本编辑器
    TOJ--1162---dfs(回溯)
    TOJ---3128---bfs(打印路径)
    TOJ---1502---map真强大
  • 原文地址:https://www.cnblogs.com/lippon/p/14257443.html
Copyright © 2011-2022 走看看