docker数据卷插件
在docker中,对接外部存储我们通常需要docker的数据卷插件。docker中简要可分为两类 docker卷插件和CSI插件,其中docker卷插件分为两个版本,旧版的传统插件(legacy plugin/non-managed plugin)和新版的托管插件(managed plugin)。下面分章节讨论这几个问题
一、传统插件(legacy plugin/non-managed plugin)
传统插件推出初期得到了各大厂商支持。也有一些开源支持。下面是常见的插件
根据官网整理
插件 |
说明 |
发展现状 |
Azure File Storage plugin |
允许您装载微软Azure的文件存储使用SMB 3.0协议将共享作为卷添挂载到Docker容器。 |
|
BeeGFS Volume Plugin |
一个开源卷插件,用于在BeeGFS并行文件系统中创建持久卷。 |
2018年停止更新 |
Blockbridge plugin |
提供对基于容器的持久存储选项的可扩展集合的访问的卷插件。它支持单主机和多主机Docker环境,具有租户隔离、自动配置、加密、安全删除、快照和QoS等功能。 |
|
Contiv Volume Plugin |
一个开源卷插件,提供多租户、持久性、分布式存储和基于意图的使用。它支持Ceph和NFS协议。 |
2016年停止更新 |
Convoy plugin |
用于各种存储后端(包括设备映射器和NFS)的卷插件。它是一个用Go语言编写的简单的独立可执行文件,提供了一个框架来支持特定于供应商的扩展,如快照、备份和恢复。 |
2018年停止更新,明确停止维护。 |
DigitalOcean Block Storage plugin |
DigitalOcean的块存储解决方案。通过自动将给定的块存储卷附加到DigitalOcean droplet,并使该卷的内容可用于在该droplet上运行的Docker容器,从而将数据导入Docker生态系统。 |
|
DRBD plugin |
通过DRBD副本提供高可用存储的卷插件,写入Docker卷的数据将在DRBD节点的群集中复制。 |
|
Flocker plugin |
为Docker提供多主机可移植卷的卷插件,使您能够运行数据库和其他有状态容器,并在计算机群集中移动它们。 |
|
Fuxi Volume Plugin |
作为OpenStack Kuryr项目的一部分开发的卷插件,通过利用OpenStack块存储服务Cinder实现Docker卷插件API。 |
|
gce-docker plugin |
一个能够附加、格式化和挂载谷歌GCE的持久化磁盘卷插件 |
|
GlusterFS plugin |
使用GlusterFS为Docker提供多主机卷管理的卷插件。 |
|
Horcrux Volume Plugin |
一个用Go语言编写,支持SCP minio Amazon S3协议的插件,它允许按需,版本控制访问您的数据。它是一个开源插件, |
2017年停止更新 |
HPE 3Par Volume Plugin |
支持HPE 3Par和StoreVirtual iSCSI存储阵列的卷插件。 |
|
Infinit volume plugin |
可以使用Docker轻松安装和管理Infinit卷的一个卷插件。 |
|
IPFS Volume Plugin |
一个运行挂载ipfs文件系统作为卷的开放源代码卷插件。 |
|
Keywhiz plugin |
使用Keywhiz作为中央存储库提供凭据和机密管理的插件。 |
|
Local Persist Plugin |
扩展默认的卷插件。它允许您在主机上的任何位置指定装载点,即使通过删除卷命令 docker volume rm删除卷,文件依然存在在主机上。 |
2016年停止更新 |
NetApp Plugin (nDVP) |
一个卷插件,可为NetApp存储产品组合提供与Docker生态系统的直接集成。nDVP产品包支持从存储平台到Docker主机的存储资源调配和管理,并提供了一个强大的框架,可用于在将来添加其他平台。 |
|
Netshare plugin |
一个卷插件,为NFS 3/4、AWS EFS和CIFS文件系统提供卷管理。 |
2019年停止更新 |
Nimble Storage Volume Plugin |
与Nimble Storage Unified Flash Fabric阵列集成的卷插件。该插件为Docker管理员提取阵列卷功能,以允许自行配置安全的多租户卷和克隆。 |
|
OpenStorage Plugin |
支持群集的卷插件,可为文件和块存储解决方案提供卷管理。 它实现了一个供应商中立的规范,用于实现CoS、加密和快照等扩展。它有一些基于FUSE、NFS、NBD和EBS的示例驱动程序。 |
|
Portworx Volume Plugin |
一个卷插件,可将任何服务器转变为横向扩展的聚合计算/存储节点,使用可与任何Docker调度程序配合使用的无共享存储后端,跨任何节点提供容器粒度存储和高可用性卷。 |
2016年停止更新 |
Quobyte Volume Plugin |
将Docker连接到的卷插件 Quobyte 配额的数据中心文件系统,这是一个通用的可扩展和容错存储平台。 |
|
REX-Ray plugin |
一个用Go语言编写的卷插件,为许多平台提供高级存储功能,包括VirtualBox、EC2、Google计算引擎、OpenStack和EMC。 |
2019年停止更新,依赖问题无法安装 |
Virtuozzo Storage and Ploop plugin |
支持Virtuozzo Storage分布式云文件系统和ploop设备的卷插件。 |
|
VMware vSphere Storage Plugin |
使客户能够满足vSphere环境中Docker容器的持久存储要求。 |
|
在自建集群里,一般考虑支持的存储协议为nfs、s3、cephfs
上述符合条件的开源项目如Rex-Ray、Netshare几乎都停止更新好几年了。现在再用这些插件也不太现实。
二、托管插件(managed plugin)
官网对于这个新插件的介绍非常简陋,实例里的插件也就只有vieux/sshfs和sample-volume-plugin两个无关痛痒的插件
从dockerhub搜索nfs插件:https://hub.docker.com/search?q=nfs&type=plugin
结果第一条为trajano/nfs-volume-plugin 这是一个托管插件。star数比较高,不过已经3年没更新了。
搜索的弊端是,搜索选项里没有区分传统插件和托管插件,云厂商的插件比较难找,缺乏相关的使用案例。
插件 |
说明 |
发展现状 |
vieux/sshfs |
支持协议sshfs |
|
rclone/docker-volume-rclone |
支持Amazon S3 FTP HDFS SFTP SMB WebDAV等 |
仍在维护 |
sapk/plugin-rclone |
支持Amazon S3 FTP HDFS SFTP SMB WebDAV等 |
仍在维护 |
三、CSI插件
目前docker 23.0.0开始支持CSI插件,目前功能还没有完善。目前几乎还不支持docker swarm集群使用CSI插件。
相关的使用demo可以参考:https://github.com/olljanat/csi-plugins-for-docker-swarm
传统插件、托管插件和CSI插件的安装命令都是
docker plugin install [插件tag]
四、nfs挂载和使用
在自建集群中,nfs是最常用的挂载方式。
目前docker是支持nfs卷的挂载和使用的,默认的local driver插件就支持,这个插件已经内置,不需要再安装。注意这个内置的插件不是传统插件里的Local Persist Plugin,传统插件里的Local Persist Plugin比内置的local driver功能强大。
1.docker volume create方式
创建命令
docker volume create --driver local \--opt type=nfs \--opt o=addr=[ip-address],rw \--opt device=:[path-to-directory] \[volume-name]
如果需要指定版本可通过"volume-opt=o=addr=10.0.0.10,rw,nfsvers=4,async"指定。
安装nfs客户端
#ubuntu 执行
sudo apt install nfs-common
#centos 执行
yum install -y nfs-utils
挂载卷
docker run -d -it \--name [container-name] \--mount source=[volume-name],target=[mount-point]\[image-name]
2.yaml文件方式
编辑docker-compose.yml
version: "3.2"
services:[service-name]:image: [docker-image]ports:- "[port]:[port]"volumes:- type: volumesource: [volume-name]target: /nfsvolume:nocopy: true
volumes:[volume-name]:driver_opts:type: "nfs"o: "addr=[ip-address],nolock,soft,rw"device: ":[path-to-directory]"
运行
docker-compose up -d
五、smbcifs卷创建
跟nfs类型类似,dockercreate命令为
docker volume create \--driver local \--opt type=cifs \--opt device=//uxxxxx.your-server.de/backup \--opt o=addr=uxxxxx.your-server.de,username=uxxxxxxx,password=*****,file_mode=0777,dir_mode=0777 \--name cif-volume
由于协议文件名缺陷,不推荐使用smb协议作为存储。
docker数据卷插件相关推荐
- Docker(七)--Docker数据卷管理及插件
一.Docker 数据卷管理 在实际使用过程中,我们需要把容器和数据进行隔离,因为容器在使用过程中可能随时要进行销毁,但是数据要保留下来,所以我们要做数据的持久化. 为什么要用数据卷 docker分层 ...
- Docker 数据卷之进阶篇
Docker 数据卷之进阶篇 原文:Docker 数据卷之进阶篇 笔者在<Docker 基础 : 数据管理>一文中介绍了 docker 数据卷(volume) 的基本用法.随着使用的深入, ...
- docker 数据卷 volume
集群直接部署tomcat项目,可能项目在不同的服务器上,如何实现不同服务器上面的项目同步,可是使用docker数据卷的形式 首先我们来认识最为基础的docker数据卷 如何创建一个数据卷: 1.创建 ...
- Docker数据卷管理
前言 docker数据卷 数据卷是目录或文件,不是块设备. 容器可以读写volume中的数据. volume数据可以持久化保存. docker提供了两种卷: bind mount 是将主机上的目录或文 ...
- Docker学习(六)-----Docker数据卷
十.Docker数据卷 问题:通过镜像创建一个容器,容器一旦被销毁,则容器内的数据将一并被删除,但有些情况下,通过服务器上传的图片出会丢失.容器中的数据不是持久化状态的. 那有没有一种独立于容器,提供 ...
- 【2】Docker数据卷
Docker数据卷 关键词 docker容器数据卷可以看成使我们生活中常用的u盘 cp命令:宿主机和容器互相拷贝数据(操作比较麻烦) -v 命令:宿主机和容器数据同步 一.测试案例 1.1 使用doc ...
- Docker学习总结(68)—— Docker 数据卷相关知识总结
前言 在生产环境中使用 Docker,要想实现数据的持久化(所谓 Docker 的数据持久化即数据不随着 Container 的结束而结束)或者需要在多个容器之间进行数据共享,需要将数据从宿主机挂载到 ...
- docker数据卷容器卷_如何删除Docker映像,容器和卷
docker数据卷容器卷 Docker备忘单 (A Docker Cheat Sheet) 介绍 (Introduction) Docker makes it easy to wrap your ap ...
- Docker数据卷—Volumes
一.引入Docker数据卷的必然性 为了实现容器与主机之间.容器与容器之间共享文件,容器中数据的持久化,将容器中的数据备份.迁移.恢复等,Docker加入了数据卷(volumes)机制.简单的讲,就是 ...
最新文章
- C语言 string.h 中函数的实现
- 【产品功能】价格信息支持下载
- Uart接口的详细解释
- linux-搜索查找类
- 《对Java的分析总结》-Java中的垃圾回收机制中的标记-清除算法 (五)
- android 加载系统私有库,Android 搭建私有maven仓库及上传项目
- scrapy框架系列 (2) 一个简单案例
- android 左滑跳转_使用ViewPager实现左右循环滑动及滑动跳转
- 计量经济学第六版伍德里奇计算机答案,求伍德里奇计量经济学答案第六版
- Unity设置鼠标指针图片
- CHI到底是干嘛的 保证cache一致性 2.3 snoop
- 亲属卡额度是什么意思_2019信用卡权益总结之十二:附属卡
- php校花评比排名,投票|佛山“校花”颜值大比拼,快来选出你最爱的!
- (java中的super)不会飞还能叫Superman吗
- 练习:身高出现的频次
- 【C#】KPM算法解决字符串匹配问题
- numpy的squeeze函数
- java中实现方法重试机制
- QComboBox自定义(一)--类似QQ登陆界面的下拉框
- JAVA获取优酷、土豆、酷6等视频实例