阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Docker存储驱动之总览

185次阅读
没有评论

共计 3595 个字符,预计需要花费 9 分钟才能阅读完成。

简介

本文会介绍 Docker 存储驱动的特性,别列出现在已经支持的存储驱动,最后,会介绍如果选型适合你的存储驱动。

可插拔的存储驱动架构

Docker 的存储驱动架构是可插拔的,可以让你很方便的将适合你环境和用例的存储驱动“插进”Docker。每个 Docker 存储驱动都建立在一种 Linux 文件系统或者卷管理系统之上,也可以很自由地按照其自己的方法去实现镜像层和容器层的管理。也就是说一些存储驱动在不同的场景下会比其他的驱动性能更好。
一旦你决定了哪种驱动最合适,你就可以 Docker daemon 启动之前设置驱动到 Docker 中,这样你就可以在该存储驱动上运行 Docker daemon 了,所有新容器都会使用这个驱动来创建了。下图显示了支持的驱动技术和它们对应的 Docker 存储驱动名称。

Technology Storage driver name
OverlayFS overlay / overlay2
AUFS aufs
Btrfs btrfs
Device Mapper devicemapper
VFS vfs
ZFS zfs

可以通过 docker info 命令来查看当前 daemon 使用着哪种存储驱动。

$ docker info

Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 1
Server Version: 1.12.6
Storage Driver: overlay2
 Backing Filesystem: extfs
... output truncated ...

上面的输出表示,Docker daemon 使用 overlay2 作为存储驱动,而其 Backing Filesystem 是 extfs。也就是说,在我的环境中,overlay2 存储驱动是在 ext 文件系统上操作的。后端文件系统指的是创建了 Docker host 的本地存储区域 /var/lib/docker 的文件系统。
存储驱动,可以运行在某种后端文件系统上,但也有些不支持的后端文件系统,它们之间的对应关系如下表:

Storage driver 后端文件系统 不支持的后端文件系统
overlay ext4 xfs btrfs aufs overlay zfs eCryptfs
overlay2 ext4 xfs btrfs aufs overlay zfs eCryptfs
aufs ext4 xfs btrfs aufs eCryptfs
btrfs btrfs only N/A
devicemapper direct-lvm N/A
vfs debugging only N/A
zfs zfs only N/A

想要设置存储驱动,可以在 dockerd 启动的时候加入 –storage-driver=

$ dockerd --storage-driver=devicemapper &

$ docker info

Containers: 0
Images: 0
Storage Driver: devicemapper
 Pool Name: docker-252:0-147544-pool
 Pool Blocksize: 65.54 kB
 Backing Filesystem: extfs
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data Space Used: 1.821 GB
 Data Space Total: 107.4 GB
 Data Space Available: 3.174 GB
 Metadata Space Used: 1.479 MB
 Metadata Space Total: 2.147 GB
 Metadata Space Available: 2.146 GB
 Thin Pool Minimum Free Space: 10.74 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Data loop file: /var/lib/docker/devicemapper/devicemapper/data
 Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
 Library Version: 1.02.90 (2014-09-01)
Execution Driver: native-0.2
<output truncated>

存储驱动的选择会影响你容器应用的性能,所以很有必要理解存储驱动之间的区别和优缺点,然后才能选择合适的驱动。

共享存储系统和存储驱动

很多企业都从共享文件系统(如 SAN 和 NAS)中获取存储资源。通常情况下,这都能带来更好的性能和更高可用性,还有如超配、副本删除、压缩等高级特性。
Docker 存储驱动和数据卷都可以运行在这些共享存储系统提供的存储上,这使得 Docker 可以利用这些系统提供的优越性能和可用性。

使用哪种存储驱动呢?

很多方面都会影响存储驱动的选择,不过有两点必须记住:
▶没有哪种驱动适合所有的用户场景;
▶存储驱动一直都在提升和改进;
此外,下面的内容,也可以提供一些指导意见。

稳定性

为了 Docker 环境更加稳定,你应该考虑一下一些建议:
▶使用你 OS 发行版默认的存储驱动。安装 Docker 时,它会根据你的系统选择默认的存储驱动,稳定性是它选择的一个主要方面。
▶遵守 CS Engine compatibility matrix 指定的配置。CS Engine 是 Docker Engine 的商业化版本,它代码基于开源的 Engine。不过它有一套限制的支持配置,而这个支持的配置使用最稳定成熟的存储驱动。

经验和专业技能

选择你和你的团队都有经验的一种存储。比如,你使用 RHEL 系列的 OS,你可能对 LVM 和 Device Mapper 很有经验,因此,你应该使用 devicemapper 存储驱动。
如果你对 Docker 提供的存储驱动都没有经验,并且你希望使用简单可用的稳定的 Docker 环境,那么你可以考虑使用你发行版默认的 Docker 存储驱动。

未来

很多人认为 OverlayFS 是 Docker 存储驱动的未来。然而,它还不够成熟,并且和 aufs、devicemapper 相比暂时还不够稳定。因此,使用 OverlayFS 时应该注意。
下图列出了所有驱动,并列出了它们的优缺点。如果要选择存储驱动,那么可以参考下面提到的内容。

Docker 存储驱动之总览

Overlay vs Overlay2

OverlayFS 有两种存储驱动,它们使用了相同的 OverlayFS 技术,但却有着不同的实现,在磁盘使用上也并不互相兼容。因为不兼容,两者之间的切换必须重新创建所有的镜像。overlay 驱动是最原始的 OverlayFS 实现,并且,在 Docker1.11 之前是仅有的 OverlayFS 驱动选择。overlay 驱动在 inode 消耗方面有着较明显的限制,并且会损耗一定的性能。overlay2 驱动解决了这种限制,不过只能在 Linux kernel 4.0 以上使用它。

更多 Docker 相关教程见以下内容

Docker 安装应用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm

64 位 CentOS 下安装与启动 Docker  http://www.linuxidc.com/Linux/2017-03/141714.htm

CentOS7.2 定制属于自己的 Docker 私有库  http://www.linuxidc.com/Linux/2017-03/141850.htm

Ubuntu 使用 VNC 运行基于 Docker 的桌面系统  http://www.linuxidc.com/Linux/2015-08/121170.htm

阿里云 CentOS 6.5 模板上安装 Docker http://www.linuxidc.com/Linux/2014-11/109107.htm

Ubuntu 15.04 下安装 Docker  http://www.linuxidc.com/Linux/2015-07/120444.htm

在 Ubuntu Trusty 14.04 (LTS) (64-bit)安装 Docker http://www.linuxidc.com/Linux/2014-10/108184.htm

在 Ubuntu 15.04 上如何安装 Docker 及基本用法 http://www.linuxidc.com/Linux/2015-09/122885.htm

Ubuntu 16.04 上 Docker 使用手记 http://www.linuxidc.com/Linux/2016-12/138490.htm

Docker 的详细介绍:请点这里
Docker 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-04/142520.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3595字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中