0
点赞
收藏
分享

微信扫一扫

Docker存储驱动的选择

正义的杰克船长 2022-04-30 阅读 121

【Linux系统查看docker当前的存储驱动类型】$ docker system info

【Linux系统】上docker可选择的存储驱动包括:AUFS(最老最原始)、Overlay2(可能是未来最优选择)、DeviceMapper、Btrfs、ZFS

【给docker环境选择合适的存储驱动】

1、Red Hat Enterprise Linux:4.x版本内核活着更高版本 + docker 17.06版本或者更高的版本建议使用Overlay2。

2、Red Hat Enterprise Linux:低版本内核或者低版本的Docker,建议使用Device Mapper。

3、Ubuntu Linux:4.x版本内核或者更高版本,建议使用Overlay2。

4、Ubuntu Linux:更早的版本建议使用AUFS。

5、SUSE Linux Enterprise Server:Btrfs。

(1)存储驱动的选择是节点级别的,每个docker主机只能选择一种存储驱动,不可以为每个容器选择不同的存储驱动。

(2)在Linux系统可以通过修改/etc/docker/daemon.json文件来修改存储引擎配置,修改完之后需要重启docker才能生效

例:将存储驱动设置为overlay2

{

“storage-driver”:"overlay2"

}

注:如果配置所在行不是文件最后一行,则请在行尾处增加逗号。

【Windows系统】上docker可选择的存储驱动:Windows Filter

【常见问题】

如果修改了正在运行docker主机的存储引擎类型,则现有的镜像和容器在重启之后都将不可使用,因为每种存储驱动在主机上存储镜像层的位置是不一样的(通常在/var/lib/docker/storage-driver/...目录下)。

如果希望切换存储引擎之后还能够继续使用之前的镜像和容器,需要将镜像保存为Docker格式,上传到某个镜像仓库,修改本地Docker存储引擎并重启,之后从镜像仓库将镜像拉取到本地,最后重启容器。

【Device Mapper配置(有风险,不是资深玩家目前不推荐使用,比较复杂,感兴趣可自行了解,比默认设置会有性能提升,且只能配置一个设备,第一次安装之后才能设置生效)】

将docker配置存储驱动为Device Mapper,并使用direct-lvm模式

1、将下面的存储驱动配置添加到/etc/docker/daemon.json中

{

“storage-driver”:"devicemapper",

"storage-opts":{

        "dm.directlvm_device=/dev/xdf",

        "dm.thinp_percent=95",

        "dm.thinp_metapercent=1",

        "dm.thinp_autoextend_threshold=80",

        "dm.thinp_autoextend_percent=20",

        "dm.directlvm_device_force=false"

}

}

【各配置项解释】

【dm.directlvm_device】:设置了块设备的位置。为了存储的最佳性能以及可用性,块设备应当位于高性能存储设备(如本地固态硬盘SSD)或者外部RAID存储阵列智商。

【dm.thinp_percent=95】:设置了镜像和容器允许使用的最大存储控件占比,默认是95%

【dm.thinp_metapercent】:设置了源数据存储允许使用使用的存储空间大小,默认是1%

【dm.thinp_autoextend_threshold】:设置了LVM自动扩展精简池自动扩容机制的时候,扩容的大小应当占现有控件的比例

【dm.directlvm_device_force】:允许用户决定是否将块设备格式化为新的文件系统。

2、重启docker
​​​​​​systemctl daemon-reload

systemctl restart docker

service docker restart

3、确认docker已成功运行,并且块设备配置已被成功加载

$ docker version

$ docker system info

举报

相关推荐

0 条评论