• 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等,不支持卷共享,单点问题。
  • 相关阅读:
    五分钟秒懂机器学习混淆矩阵、ROC和AUC
    五分钟学会Python装饰器,看完面试不再慌
    LeetCode54 螺旋矩阵,题目不重要,重要的是这个技巧
    Golang——变量的声明与定义
    LeetCode52题,别再问我N皇后问题了
    spark中的pair rdd,看这一篇就够了
    MySQL不香吗,为什么还要有noSQL?
    JBOSS安装配置详细教程
    Aspose.Words关于域的应用
    SqlServer PIVOT行转列
  • 原文地址:https://www.cnblogs.com/lippon/p/14257443.html
Copyright © 2020-2023  润新知